diff --git a/autopilot/prefattach_test.go b/autopilot/prefattach_test.go index b79a396b1..2e3b22ff3 100644 --- a/autopilot/prefattach_test.go +++ b/autopilot/prefattach_test.go @@ -736,7 +736,7 @@ func (t *testNodeTx) Node() *models.LightningNode { func (t *testNodeTx) ForEachChannel(f func(*models.ChannelEdgeInfo, *models.ChannelEdgePolicy, *models.ChannelEdgePolicy) error) error { - return t.db.db.ForEachNodeChannel(t.node.PubKeyBytes, func(_ kvdb.RTx, + return t.db.db.ForEachNodeChannel(t.node.PubKeyBytes, func( edge *models.ChannelEdgeInfo, policy1, policy2 *models.ChannelEdgePolicy) error { diff --git a/graph/builder.go b/graph/builder.go index f92b523b0..3350eeb33 100644 --- a/graph/builder.go +++ b/graph/builder.go @@ -13,7 +13,6 @@ import ( "github.com/lightningnetwork/lnd/chainntnfs" graphdb "github.com/lightningnetwork/lnd/graph/db" "github.com/lightningnetwork/lnd/graph/db/models" - "github.com/lightningnetwork/lnd/kvdb" "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwire" @@ -1276,8 +1275,7 @@ func (b *Builder) ForAllOutgoingChannels(cb func(*models.ChannelEdgeInfo, *models.ChannelEdgePolicy) error) error { return b.cfg.Graph.ForEachNodeChannel(b.cfg.SelfNode, - func(_ kvdb.RTx, c *models.ChannelEdgeInfo, - e *models.ChannelEdgePolicy, + func(c *models.ChannelEdgeInfo, e *models.ChannelEdgePolicy, _ *models.ChannelEdgePolicy) error { if e == nil { diff --git a/graph/db/graph_test.go b/graph/db/graph_test.go index 26b7bede1..ce8b68ade 100644 --- a/graph/db/graph_test.go +++ b/graph/db/graph_test.go @@ -1141,7 +1141,7 @@ func TestGraphTraversal(t *testing.T) { numNodeChans := 0 firstNode, secondNode := nodeList[0], nodeList[1] err = graph.ForEachNodeChannel(firstNode.PubKeyBytes, - func(_ kvdb.RTx, _ *models.ChannelEdgeInfo, outEdge, + func(_ *models.ChannelEdgeInfo, outEdge, inEdge *models.ChannelEdgePolicy) error { // All channels between first and second node should @@ -2882,7 +2882,7 @@ func TestIncompleteChannelPolicies(t *testing.T) { calls := 0 err := graph.ForEachNodeChannel(node.PubKeyBytes, - func(_ kvdb.RTx, _ *models.ChannelEdgeInfo, outEdge, + func(_ *models.ChannelEdgeInfo, outEdge, inEdge *models.ChannelEdgePolicy) error { if !expectedOut && outEdge != nil { @@ -4001,8 +4001,7 @@ func BenchmarkForEachChannel(b *testing.B) { require.NoError(b, err) for _, n := range nodes { - cb := func(tx kvdb.RTx, - info *models.ChannelEdgeInfo, + cb := func(info *models.ChannelEdgeInfo, policy *models.ChannelEdgePolicy, policy2 *models.ChannelEdgePolicy) error { //nolint:ll diff --git a/graph/db/kv_store.go b/graph/db/kv_store.go index a0399ff90..104c65b36 100644 --- a/graph/db/kv_store.go +++ b/graph/db/kv_store.go @@ -3103,10 +3103,15 @@ func nodeTraversal(tx kvdb.RTx, nodePub []byte, db kvdb.Backend, // // Unknown policies are passed into the callback as nil values. func (c *KVStore) ForEachNodeChannel(nodePub route.Vertex, - cb func(kvdb.RTx, *models.ChannelEdgeInfo, *models.ChannelEdgePolicy, + cb func(*models.ChannelEdgeInfo, *models.ChannelEdgePolicy, *models.ChannelEdgePolicy) error) error { - return nodeTraversal(nil, nodePub[:], c.db, cb) + return nodeTraversal(nil, nodePub[:], c.db, func(_ kvdb.RTx, + info *models.ChannelEdgeInfo, policy, + policy2 *models.ChannelEdgePolicy) error { + + return cb(info, policy, policy2) + }) } // ForEachSourceNodeChannel iterates through all channels of the source node, diff --git a/graph/interfaces.go b/graph/interfaces.go index e351514bb..52897d8f5 100644 --- a/graph/interfaces.go +++ b/graph/interfaces.go @@ -8,7 +8,6 @@ import ( "github.com/lightningnetwork/lnd/batch" graphdb "github.com/lightningnetwork/lnd/graph/db" "github.com/lightningnetwork/lnd/graph/db/models" - "github.com/lightningnetwork/lnd/kvdb" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/routing/route" ) @@ -254,10 +253,9 @@ type DB interface { // to the caller. // // Unknown policies are passed into the callback as nil values. - ForEachNodeChannel(nodePub route.Vertex, cb func(kvdb.RTx, - *models.ChannelEdgeInfo, - *models.ChannelEdgePolicy, - *models.ChannelEdgePolicy) error) error + ForEachNodeChannel(nodePub route.Vertex, + cb func(*models.ChannelEdgeInfo, *models.ChannelEdgePolicy, + *models.ChannelEdgePolicy) error) error // AddEdgeProof sets the proof of an existing edge in the graph // database. diff --git a/rpcserver.go b/rpcserver.go index 72cf953bf..b009b2d6b 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -56,7 +56,6 @@ import ( "github.com/lightningnetwork/lnd/input" "github.com/lightningnetwork/lnd/invoices" "github.com/lightningnetwork/lnd/keychain" - "github.com/lightningnetwork/lnd/kvdb" "github.com/lightningnetwork/lnd/labels" "github.com/lightningnetwork/lnd/lncfg" "github.com/lightningnetwork/lnd/lnrpc" @@ -6959,7 +6958,7 @@ func (r *rpcServer) GetNodeInfo(ctx context.Context, ) err = graph.ForEachNodeChannel(node.PubKeyBytes, - func(_ kvdb.RTx, edge *models.ChannelEdgeInfo, + func(edge *models.ChannelEdgeInfo, c1, c2 *models.ChannelEdgePolicy) error { numChannels++ @@ -7641,7 +7640,7 @@ func (r *rpcServer) FeeReport(ctx context.Context, var feeReports []*lnrpc.ChannelFeeReport err = channelGraph.ForEachNodeChannel(selfNode.PubKeyBytes, - func(_ kvdb.RTx, chanInfo *models.ChannelEdgeInfo, + func(chanInfo *models.ChannelEdgeInfo, edgePolicy, _ *models.ChannelEdgePolicy) error { // Self node should always have policies for its diff --git a/server.go b/server.go index 395100962..7f5219f99 100644 --- a/server.go +++ b/server.go @@ -51,7 +51,6 @@ import ( "github.com/lightningnetwork/lnd/input" "github.com/lightningnetwork/lnd/invoices" "github.com/lightningnetwork/lnd/keychain" - "github.com/lightningnetwork/lnd/kvdb" "github.com/lightningnetwork/lnd/lncfg" "github.com/lightningnetwork/lnd/lnencrypt" "github.com/lightningnetwork/lnd/lnpeer" @@ -1212,7 +1211,7 @@ func newServer(_ context.Context, cfg *Config, listenAddrs []net.Addr, *models.ChannelEdgePolicy) error) error { return s.graphDB.ForEachNodeChannel(selfVertex, - func(_ kvdb.RTx, c *models.ChannelEdgeInfo, + func(c *models.ChannelEdgeInfo, e *models.ChannelEdgePolicy, _ *models.ChannelEdgePolicy) error {