graph: add IsZombieEdge method

This is in preparation for the commit where we move across all the
funding tx validation so that we can test that we are correctly updating
the zombie index.
This commit is contained in:
Elle Mouton 2025-01-30 13:47:37 +02:00
parent 870c865763
commit 00f5fd9b7f
No known key found for this signature in database
GPG Key ID: D7D916376026F177
3 changed files with 25 additions and 0 deletions

View File

@ -113,6 +113,17 @@ func (r *mockGraphSource) MarkZombieEdge(scid uint64) error {
)
}
func (r *mockGraphSource) IsZombieEdge(chanID lnwire.ShortChannelID) (bool,
error) {
r.mu.Lock()
defer r.mu.Unlock()
_, ok := r.zombies[chanID.ToUint64()]
return ok, nil
}
func (r *mockGraphSource) AddEdge(info *models.ChannelEdgeInfo,
_ ...batch.SchedulerOption) error {

View File

@ -1630,6 +1630,16 @@ func (b *Builder) IsKnownEdge(chanID lnwire.ShortChannelID) bool {
return exists || isZombie
}
// IsZombieEdge returns true if the graph source has marked the given channel ID
// as a zombie edge.
//
// NOTE: This method is part of the ChannelGraphSource interface.
func (b *Builder) IsZombieEdge(chanID lnwire.ShortChannelID) (bool, error) {
_, _, _, isZombie, err := b.cfg.Graph.HasChannelEdge(chanID.ToUint64())
return isZombie, err
}
// IsStaleEdgePolicy returns true if the graph source has a channel edge for
// the passed channel ID (and flags) that have a more recent timestamp.
//

View File

@ -88,6 +88,10 @@ type ChannelGraphSource interface {
// MarkZombieEdge marks the channel with the given ID as a zombie edge.
MarkZombieEdge(chanID uint64) error
// IsZombieEdge returns true if the edge with the given channel ID is
// currently marked as a zombie edge.
IsZombieEdge(chanID lnwire.ShortChannelID) (bool, error)
}
// DB is an interface describing a persisted Lightning Network graph.