From c93f310d207b1e66ab7b4bfb3cde1e0373488ee8 Mon Sep 17 00:00:00 2001 From: msutton Date: Sun, 10 Jul 2022 01:29:37 +0300 Subject: [PATCH] Parents must be picked first before set as virtual parents --- .../processes/consensusstatemanager/resolve.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/domain/consensus/processes/consensusstatemanager/resolve.go b/domain/consensus/processes/consensusstatemanager/resolve.go index dd527087b..3c94a9482 100644 --- a/domain/consensus/processes/consensusstatemanager/resolve.go +++ b/domain/consensus/processes/consensusstatemanager/resolve.go @@ -168,10 +168,17 @@ func (csm *consensusStateManager) ResolveVirtual(maxBlocksToResolve uint64) (*ex // If `isCompletelyResolved`, set virtual correctly with all tips which have less blue work than pending virtualTipCandidates := []*externalapi.DomainHash{intermediateTip} if isCompletelyResolved { - virtualTipCandidates, err = csm.getLowerTips(readStagingArea, pendingTip) + lowerTips, err := csm.getLowerTips(readStagingArea, pendingTip) if err != nil { return nil, false, err } + + log.Debugf("Picking virtual parents from relevant tips len: %d", len(lowerTips)) + virtualTipCandidates, err = csm.pickVirtualParents(readStagingArea, lowerTips) + if err != nil { + return nil, false, err + } + log.Debugf("Picked virtual parents: %s", virtualTipCandidates) } virtualUTXODiff, err := csm.updateVirtualWithParents(updateVirtualStagingArea, virtualTipCandidates) if err != nil { @@ -183,7 +190,6 @@ func (csm *consensusStateManager) ResolveVirtual(maxBlocksToResolve uint64) (*ex return nil, false, err } - // TODO: why was `readStagingArea` used here ? selectedParentChainChanges, err := csm.dagTraversalManager. CalculateChainPath(updateVirtualStagingArea, prevVirtualSelectedParent, pendingTip) if err != nil {