kaspad/domain/consensus/database/serialization/reachability_tree_node.go
Ori Newman 9a344152aa
[NOD-1517] Properly initialize consensus with Genesis block (#1009)
* [NOD-1517] Properly initialize consensus with Genesis block

* [NOD-1517] Remove redundant AddHeaderTip

* [NOD-1517] Don't return nil from dbHash<->DomainHash converters

* [NOD-1517] Use pointer receivers

* [NOD-1517] Use domain block in dagParams

* [NOD-1517] Remove boolean from SelectedTip

* [NOD-1517] Rename hasHeader to isHeadersOnlyBlock

* [NOD-1517] Add comment

* [NOD-1517] Change genesis version

* [NOD-1517] Rename TestNewFactory->TestNewConsensus
2020-11-08 15:17:20 +02:00

42 lines
1.2 KiB
Go

package serialization
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
func reachablityTreeNodeToDBReachablityTreeNode(reachabilityTreeNode *model.ReachabilityTreeNode) *DbReachabilityTreeNode {
var parent *DbHash
if reachabilityTreeNode.Parent != nil {
parent = DomainHashToDbHash(reachabilityTreeNode.Parent)
}
return &DbReachabilityTreeNode{
Children: DomainHashesToDbHashes(reachabilityTreeNode.Children),
Parent: parent,
Interval: reachablityIntervalToDBReachablityInterval(reachabilityTreeNode.Interval),
}
}
func dbReachablityTreeNodeToReachablityTreeNode(dbReachabilityTreeNode *DbReachabilityTreeNode) (*model.ReachabilityTreeNode, error) {
children, err := DbHashesToDomainHashes(dbReachabilityTreeNode.Children)
if err != nil {
return nil, err
}
var parent *externalapi.DomainHash
if dbReachabilityTreeNode.Parent != nil {
var err error
parent, err = DbHashToDomainHash(dbReachabilityTreeNode.Parent)
if err != nil {
return nil, err
}
}
return &model.ReachabilityTreeNode{
Children: children,
Parent: parent,
Interval: dbReachablityIntervalToReachablityInterval(dbReachabilityTreeNode.Interval),
}, nil
}