diff --git a/domain/consensus/model/interface_processes_dagtopologymanager.go b/domain/consensus/model/interface_processes_dagtopologymanager.go index c084441d4..e0c0ca2ea 100644 --- a/domain/consensus/model/interface_processes_dagtopologymanager.go +++ b/domain/consensus/model/interface_processes_dagtopologymanager.go @@ -13,7 +13,4 @@ type DAGTopologyManager interface { IsDescendantOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) IsAncestorOfAny(blockHash *externalapi.DomainHash, potentialDescendants []*externalapi.DomainHash) (bool, error) IsInSelectedParentChainOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) - - Tips() ([]*externalapi.DomainHash, error) - AddTip(tipHash *externalapi.DomainHash) error } diff --git a/domain/consensus/processes/dagtopologymanager/dagtopologymanager.go b/domain/consensus/processes/dagtopologymanager/dagtopologymanager.go index e56d88d52..306b0c101 100644 --- a/domain/consensus/processes/dagtopologymanager/dagtopologymanager.go +++ b/domain/consensus/processes/dagtopologymanager/dagtopologymanager.go @@ -75,12 +75,23 @@ func (dtm *dagTopologyManager) IsDescendantOf(blockHashA *externalapi.DomainHash // IsAncestorOfAny returns true if `blockHash` is an ancestor of at least one of `potentialDescendants` func (dtm *dagTopologyManager) IsAncestorOfAny(blockHash *externalapi.DomainHash, potentialDescendants []*externalapi.DomainHash) (bool, error) { - panic("unimplemented") + for _, potentialDescendant := range potentialDescendants { + isAncestorOf, err := dtm.IsAncestorOf(blockHash, potentialDescendant) + if err != nil { + return false, err + } + + if isAncestorOf { + return true, nil + } + } + + return false, nil } // IsInSelectedParentChainOf returns true if blockHashA is in the selected parent chain of blockHashB func (dtm *dagTopologyManager) IsInSelectedParentChainOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) { - panic("unimplemented") + return dtm.reachabilityTree.IsReachabilityTreeAncestorOf(blockHashA, blockHashB) } func isHashInSlice(hash *externalapi.DomainHash, hashes []*externalapi.DomainHash) bool { @@ -91,13 +102,3 @@ func isHashInSlice(hash *externalapi.DomainHash, hashes []*externalapi.DomainHas } return false } - -// Tips returns the current DAG tips -func (dtm *dagTopologyManager) Tips() ([]*externalapi.DomainHash, error) { - panic("implement me") -} - -// AddTip adds the given tip to the current DAG tips -func (dtm *dagTopologyManager) AddTip(tipHash *externalapi.DomainHash) error { - panic("implement me") -}