diff --git a/autopilot/graph.go b/autopilot/graph.go index f1506b5d7..eba26c99a 100644 --- a/autopilot/graph.go +++ b/autopilot/graph.go @@ -106,9 +106,7 @@ func (d *dbNode) ForEachChannel(ctx context.Context, edge := ChannelEdge{ ChanID: lnwire.NewShortChanIDFromInt(ep.ChannelID), Capacity: ei.Capacity, - Peer: &dbNode{ - tx: node, - }, + Peer: node.Node().PubKeyBytes, } return cb(ctx, edge) @@ -198,9 +196,7 @@ func (nc dbNodeCached) ForEachChannel(ctx context.Context, edge := ChannelEdge{ ChanID: lnwire.NewShortChanIDFromInt(cid), Capacity: channel.Capacity, - Peer: dbNodeCached{ - node: channel.OtherNode, - }, + Peer: channel.OtherNode, } if err := cb(ctx, edge); err != nil { diff --git a/autopilot/interface.go b/autopilot/interface.go index a4efa2eec..5caef98c0 100644 --- a/autopilot/interface.go +++ b/autopilot/interface.go @@ -72,7 +72,7 @@ type ChannelEdge struct { // Peer is the peer that this channel creates an edge to in the channel // graph. - Peer Node + Peer route.Vertex } // ChannelGraph in an interface that represents a traversable channel graph. diff --git a/autopilot/prefattach_test.go b/autopilot/prefattach_test.go index b5c0b1d26..8ebb1419f 100644 --- a/autopilot/prefattach_test.go +++ b/autopilot/prefattach_test.go @@ -175,8 +175,8 @@ func TestPrefAttachmentSelectTwoVertexes(t *testing.T) { // The candidates should be amongst the two edges // created above. for nodeID, candidate := range candidates { - edge1Pub := edge1.Peer.PubKey() - edge2Pub := edge2.Peer.PubKey() + edge1Pub := edge1.Peer + edge2Pub := edge2.Peer switch { case bytes.Equal(nodeID[:], edge1Pub[:]): @@ -228,7 +228,7 @@ func TestPrefAttachmentSelectGreedyAllocation(t *testing.T) { ) require.NoError(t1, err) - peerPubBytes := edge1.Peer.PubKey() + peerPubBytes := edge1.Peer peerPub, err := btcec.ParsePubKey(peerPubBytes[:]) require.NoError(t1, err) @@ -535,18 +535,12 @@ func (d *testDBGraph) addRandChannel(node1, node2 *btcec.PublicKey, return &ChannelEdge{ ChanID: chanID, Capacity: capacity, - Peer: &dbNode{tx: &testNodeTx{ - db: d, - node: vertex1, - }}, + Peer: vertex1.PubKeyBytes, }, &ChannelEdge{ ChanID: chanID, Capacity: capacity, - Peer: &dbNode{tx: &testNodeTx{ - db: d, - node: vertex2, - }}, + Peer: vertex2.PubKeyBytes, }, nil } @@ -692,14 +686,14 @@ func (m *memChannelGraph) addRandChannel(node1, node2 *btcec.PublicKey, edge1 := ChannelEdge{ ChanID: randChanID(), Capacity: capacity, - Peer: vertex2, + Peer: vertex2.PubKey(), } vertex1.chans = append(vertex1.chans, edge1) edge2 := ChannelEdge{ ChanID: randChanID(), Capacity: capacity, - Peer: vertex1, + Peer: vertex1.PubKey(), } vertex2.chans = append(vertex2.chans, edge2) diff --git a/autopilot/simple_graph.go b/autopilot/simple_graph.go index 2f80c490a..32c4559c8 100644 --- a/autopilot/simple_graph.go +++ b/autopilot/simple_graph.go @@ -1,6 +1,10 @@ package autopilot -import "context" +import ( + "context" + + "github.com/lightningnetwork/lnd/routing/route" +) // diameterCutoff is used to discard nodes in the diameter calculation. // It is the multiplier for the eccentricity of the highest-degree node, @@ -31,8 +35,8 @@ func NewSimpleGraph(ctx context.Context, g ChannelGraph) (*SimpleGraph, error) { // The returned index is then used to create a simplified adjacency list // where each node is identified by its index instead of its pubkey, and // also to create a mapping from node index to node pubkey. - getNodeIndex := func(node Node) int { - key := NodeID(node.PubKey()) + getNodeIndex := func(node route.Vertex) int { + key := NodeID(node) nodeIndex, ok := nodes[key] if !ok { @@ -47,7 +51,7 @@ func NewSimpleGraph(ctx context.Context, g ChannelGraph) (*SimpleGraph, error) { // Iterate over each node and each channel and update the adj and the // node index. err := g.ForEachNode(ctx, func(ctx context.Context, node Node) error { - u := getNodeIndex(node) + u := getNodeIndex(node.PubKey()) return node.ForEachChannel( ctx, func(_ context.Context,