[NOD-1532] Fixes in updateVirtualDiffParent

This commit is contained in:
Mike Zak 2020-11-15 18:24:45 +02:00 committed by Svarog
parent 347f3de15c
commit ae682d59f7

View File

@ -69,22 +69,25 @@ func (csm *consensusStateManager) updateVirtualDiffParents(
newVirtualDiffParents := []*externalapi.DomainHash{newBlockHash}
for _, virtualDiffParent := range virtualDiffParents {
if !newBlockParents.Contains(virtualDiffParent) {
virtualDiffParentUTXODiff, err := csm.utxoDiffStore.UTXODiff(csm.databaseContext, virtualDiffParent)
if err != nil {
return err
}
newDiff, err := utxoalgebra.DiffFrom(virtualUTXODiff, virtualDiffParentUTXODiff)
if err != nil {
return err
}
err = csm.utxoDiffStore.Stage(virtualDiffParent, newDiff, newBlockHash)
if err != nil {
return err
}
newVirtualDiffParents = append(newVirtualDiffParents, virtualDiffParent)
}
}
for _, virtualDiffParent := range newVirtualDiffParents {
virtualDiffParentUTXODiff, err := csm.utxoDiffStore.UTXODiff(csm.databaseContext, virtualDiffParent)
if err != nil {
return err
}
newDiff, err := utxoalgebra.DiffFrom(virtualUTXODiff, virtualDiffParentUTXODiff)
if err != nil {
return err
}
err = csm.utxoDiffStore.Stage(virtualDiffParent, newDiff, nil)
if err != nil {
return err
}
}
}
return csm.consensusStateStore.StageVirtualDiffParents(newVirtualDiffParents)