mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-17 15:57:21 +03:00
Remove redundant fields from LedgerNodeInfo
CHANGELOG_BEGIN [DAML Studio] as the `parent` and `rolledbackBy` fields of `LedgerNodeInfo` are not used within the code base, they have been removed. CHANGELOG_END
This commit is contained in:
parent
c47b52334c
commit
5c026163a9
@ -527,10 +527,6 @@ final class Conversions(
|
||||
|
||||
nodeInfo.consumedBy
|
||||
.map(eventId => builder.setConsumedBy(convertEventId(eventId)))
|
||||
nodeInfo.rolledbackBy
|
||||
.map(nodeId => builder.setRolledbackBy(convertNodeId(eventId.transactionId, nodeId)))
|
||||
nodeInfo.parent
|
||||
.map(eventId => builder.setParent(convertEventId(eventId)))
|
||||
|
||||
nodeInfo.node match {
|
||||
case rollback: Node.Rollback =>
|
||||
|
@ -156,11 +156,6 @@ object ScenarioLedger {
|
||||
* node exists. Consumption under a rollback
|
||||
* is not included here even for contracts created
|
||||
* under a rollback node.
|
||||
* @param rolledbackBy The nearest ancestor rollback node, provided such a
|
||||
* node exists.
|
||||
* @param parent If the node is part of a sub-transaction, then
|
||||
* this is the immediate parent, which must be an
|
||||
* 'NodeExercises' node.
|
||||
*/
|
||||
final case class LedgerNodeInfo(
|
||||
node: Node,
|
||||
@ -170,8 +165,6 @@ object ScenarioLedger {
|
||||
disclosures: Map[Party, Disclosure],
|
||||
referencedBy: Set[EventId],
|
||||
consumedBy: Option[EventId],
|
||||
rolledbackBy: Option[NodeId],
|
||||
parent: Option[EventId],
|
||||
) {
|
||||
|
||||
/** 'True' if the given 'View' contains the given 'Node'. */
|
||||
@ -415,8 +408,6 @@ object ScenarioLedger {
|
||||
disclosures = Map.empty,
|
||||
referencedBy = Set.empty,
|
||||
consumedBy = None,
|
||||
rolledbackBy = None,
|
||||
parent = None,
|
||||
)
|
||||
|
||||
ledgerData.copy(nodeInfos = ledgerData.nodeInfos + (eventId -> newLedgerNodeInfo))
|
||||
@ -458,28 +449,6 @@ object ScenarioLedger {
|
||||
ledgerData
|
||||
}
|
||||
|
||||
def parentUpdates(historicalLedgerData: LedgerData): LedgerData =
|
||||
richTr.transaction.transaction.fold[LedgerData](historicalLedgerData) {
|
||||
case (ledgerData, (nodeId, exerciseNode: Node.Exercise)) =>
|
||||
exerciseNode.children.foldLeft[LedgerData](ledgerData) {
|
||||
case (updatedLedgerData, childNodeId) =>
|
||||
updatedLedgerData.updateLedgerNodeInfo(EventId(trId.id, childNodeId))(
|
||||
ledgerNodeInfo => ledgerNodeInfo.copy(parent = Some(EventId(trId.id, nodeId)))
|
||||
)
|
||||
}
|
||||
|
||||
case (ledgerData, (nodeId, rollbackNode: Node.Rollback)) =>
|
||||
rollbackNode.children.foldLeft[LedgerData](ledgerData) {
|
||||
case (updatedLedgerData, childNodeId) =>
|
||||
updatedLedgerData.updateLedgerNodeInfo(EventId(trId.id, childNodeId))(
|
||||
ledgerNodeInfo => ledgerNodeInfo.copy(parent = Some(EventId(trId.id, nodeId)))
|
||||
)
|
||||
}
|
||||
|
||||
case (ledgerData, (_, _: Node)) =>
|
||||
ledgerData
|
||||
}
|
||||
|
||||
def consumedByUpdates(ledgerData: LedgerData): LedgerData = {
|
||||
var ledgerDataResult = ledgerData
|
||||
|
||||
@ -492,19 +461,6 @@ object ScenarioLedger {
|
||||
ledgerDataResult
|
||||
}
|
||||
|
||||
def rolledbackByUpdates(ledgerData: LedgerData): LedgerData = {
|
||||
var ledgerDataResult = ledgerData
|
||||
|
||||
for ((nodeId, rollbackNodeId) <- richTr.transaction.transaction.rolledbackBy) {
|
||||
ledgerDataResult = ledgerDataResult.updateLedgerNodeInfo(EventId(trId.id, nodeId)) {
|
||||
ledgerNodeInfo =>
|
||||
ledgerNodeInfo.copy(rolledbackBy = Some(rollbackNodeId))
|
||||
}
|
||||
}
|
||||
|
||||
ledgerDataResult
|
||||
}
|
||||
|
||||
def activeContractAndKeyUpdates(ledgerData: LedgerData): LedgerData = {
|
||||
ledgerData.copy(
|
||||
activeContracts =
|
||||
@ -563,12 +519,8 @@ object ScenarioLedger {
|
||||
|
||||
// Update ledger data with any new created in and referenced by information
|
||||
cachedLedgerData = processor.createdInAndReferenceByUpdates(cachedLedgerData)
|
||||
// Update ledger data with any new parent information
|
||||
cachedLedgerData = processor.parentUpdates(cachedLedgerData)
|
||||
// Update ledger data with any new consumed by information
|
||||
cachedLedgerData = processor.consumedByUpdates(cachedLedgerData)
|
||||
// Update ledger data with any new rolled back by information
|
||||
cachedLedgerData = processor.rolledbackByUpdates(cachedLedgerData)
|
||||
// Update ledger data with any new active contract information
|
||||
cachedLedgerData = processor.activeContractAndKeyUpdates(cachedLedgerData)
|
||||
// Update ledger data with any new disclosure information
|
||||
|
@ -488,38 +488,6 @@ sealed abstract class HasTxNodes {
|
||||
rollbackEnd = (consumedByMap, _, _) => consumedByMap,
|
||||
)
|
||||
|
||||
/** Keys are nodes under a rollback and values are the "nearest" (i.e. most recent) rollback node.
|
||||
*/
|
||||
final def rolledbackBy: Map[NodeId, NodeId] = {
|
||||
val rolledbackByMapUpdate
|
||||
: ((Map[NodeId, NodeId], Seq[NodeId]), NodeId) => (Map[NodeId, NodeId], Seq[NodeId]) = {
|
||||
case ((rolledbackMap, rollbackStack @ (rollbackNode +: _)), nodeId) =>
|
||||
(rolledbackMap + (nodeId -> rollbackNode), rollbackStack)
|
||||
|
||||
case (state, _) =>
|
||||
state
|
||||
}
|
||||
|
||||
foldInExecutionOrder[(Map[NodeId, NodeId], Seq[NodeId])]((HashMap.empty, Vector.empty))(
|
||||
exerciseBegin =
|
||||
(state, nodeId, _) => (rolledbackByMapUpdate(state, nodeId), ChildrenRecursion.DoRecurse),
|
||||
rollbackBegin = { case ((rolledbackMap, rollbackStack), nodeId, _) =>
|
||||
((rolledbackMap, nodeId +: rollbackStack), ChildrenRecursion.DoRecurse)
|
||||
},
|
||||
leaf = (state, nodeId, _) => rolledbackByMapUpdate(state, nodeId),
|
||||
exerciseEnd = (state, _, _) => state,
|
||||
rollbackEnd = {
|
||||
case ((rolledbackMap, _ +: rollbackStack), _, _) =>
|
||||
(rolledbackMap, rollbackStack)
|
||||
|
||||
case _ =>
|
||||
throw new IllegalStateException(
|
||||
"Impossible case: rollbackBegin should already have pushed to the rollback stack"
|
||||
)
|
||||
},
|
||||
)._1
|
||||
}
|
||||
|
||||
/** Return the expected contract key inputs (i.e. the state before the transaction)
|
||||
* for this transaction or an error if the transaction contains a
|
||||
* duplicate key error or has an inconsistent mapping for a key. For
|
||||
|
@ -676,14 +676,13 @@ class TransactionSpec
|
||||
}
|
||||
}
|
||||
|
||||
"consumedBy and rolledbackBy" - {
|
||||
"consumedBy" - {
|
||||
"non-consuming transaction with no rollbacks" - {
|
||||
"no nodes" in {
|
||||
val builder = TransactionBuilder()
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
|
||||
"one node" - {
|
||||
@ -696,7 +695,6 @@ class TransactionSpec
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -709,7 +707,6 @@ class TransactionSpec
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
}
|
||||
|
||||
@ -725,7 +722,6 @@ class TransactionSpec
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
|
||||
"create and non-consuming exercise nodes" - {
|
||||
@ -739,7 +735,6 @@ class TransactionSpec
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -751,14 +746,13 @@ class TransactionSpec
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"consuming transaction with no rollbacks" - {
|
||||
"one excercise" - {
|
||||
"one exercise" - {
|
||||
"with local contracts" in {
|
||||
val builder = TransactionBuilder()
|
||||
val parties = Seq("Alice")
|
||||
@ -770,7 +764,6 @@ class TransactionSpec
|
||||
|
||||
transaction.consumedBy shouldBe
|
||||
Map(cid0 -> exerciseId0)
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -783,7 +776,6 @@ class TransactionSpec
|
||||
|
||||
transaction.consumedBy shouldBe
|
||||
Map(cid0 -> exerciseId0)
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
}
|
||||
|
||||
@ -802,7 +794,6 @@ class TransactionSpec
|
||||
|
||||
transaction.consumedBy shouldBe
|
||||
Map(cid0 -> exerciseId0, cid1 -> exerciseId1)
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -817,7 +808,6 @@ class TransactionSpec
|
||||
|
||||
transaction.consumedBy shouldBe
|
||||
Map(cid0 -> exerciseId0, cid1 -> exerciseId1)
|
||||
transaction.rolledbackBy shouldBe Map.empty
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -834,13 +824,11 @@ class TransactionSpec
|
||||
builder.add(createNode1)
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true))
|
||||
val rollbackId = builder.add(builder.rollback())
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe
|
||||
Map(cid0 -> nodeId0)
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId1 -> rollbackId)
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -851,19 +839,17 @@ class TransactionSpec
|
||||
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true))
|
||||
val rollbackId = builder.add(builder.rollback())
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe
|
||||
Map(cid0 -> nodeId0)
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId1 -> rollbackId)
|
||||
}
|
||||
}
|
||||
|
||||
"multiple rollbacks" - {
|
||||
"sequential rollbacks" - {
|
||||
"with local wontracts" in {
|
||||
"with local contracts" in {
|
||||
val builder = TransactionBuilder()
|
||||
val parties = Seq("Alice")
|
||||
val (_, createNode0) = create(builder, parties, Some("key0"))
|
||||
@ -872,14 +858,12 @@ class TransactionSpec
|
||||
builder.add(createNode0)
|
||||
builder.add(createNode1)
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback())
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1)
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -889,14 +873,12 @@ class TransactionSpec
|
||||
val (_, createNode1) = create(builder, parties, Some("key1"))
|
||||
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback())
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1)
|
||||
}
|
||||
}
|
||||
|
||||
@ -911,14 +893,12 @@ class TransactionSpec
|
||||
builder.add(createNode0)
|
||||
builder.add(createNode1)
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1)
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -928,14 +908,12 @@ class TransactionSpec
|
||||
val (_, createNode1) = create(builder, parties, Some("key1"))
|
||||
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1)
|
||||
}
|
||||
}
|
||||
|
||||
@ -951,16 +929,14 @@ class TransactionSpec
|
||||
builder.add(createNode1)
|
||||
builder.add(createNode2)
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val rollbackId2 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId2 = builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1, nodeId2 -> rollbackId2)
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -971,16 +947,14 @@ class TransactionSpec
|
||||
val (_, createNode2) = create(builder, parties, Some("key2"))
|
||||
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val rollbackId2 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId2 = builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1, nodeId2 -> rollbackId2)
|
||||
}
|
||||
}
|
||||
|
||||
@ -996,16 +970,14 @@ class TransactionSpec
|
||||
builder.add(createNode1)
|
||||
builder.add(createNode2)
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val rollbackId2 = builder.add(builder.rollback(), rollbackId1)
|
||||
val nodeId2 = builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1, nodeId2 -> rollbackId2)
|
||||
}
|
||||
|
||||
"with global contracts" in {
|
||||
@ -1016,16 +988,14 @@ class TransactionSpec
|
||||
val (_, createNode2) = create(builder, parties, Some("key2"))
|
||||
|
||||
val rollbackId0 = builder.add(builder.rollback())
|
||||
val nodeId0 = builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
builder.add(exercise(builder, createNode0, parties, true), rollbackId0)
|
||||
val rollbackId1 = builder.add(builder.rollback(), rollbackId0)
|
||||
val nodeId1 = builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
builder.add(exercise(builder, createNode1, parties, true), rollbackId1)
|
||||
val rollbackId2 = builder.add(builder.rollback(), rollbackId1)
|
||||
val nodeId2 = builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
builder.add(exercise(builder, createNode2, parties, true), rollbackId2)
|
||||
val transaction = builder.build()
|
||||
|
||||
transaction.consumedBy shouldBe Map.empty
|
||||
transaction.rolledbackBy shouldBe
|
||||
Map(nodeId0 -> rollbackId0, nodeId1 -> rollbackId1, nodeId2 -> rollbackId2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user