lnrpc/peers: skeleton logic for updateNodeAnnouncement
Basic logic for the endpoint: - Get the current nodeAnn information - Calculate modifications - Apply modifications - Return changes
This commit is contained in:
17 files changed
+438
-8
No files matched your search
@@ -25,6 +25,7 @@ import (
|
||||
"github.com/lightningnetwork/lnd/lnrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/chainrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/invoicesrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/peersrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/signrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/walletrpc"
|
||||
@@ -356,6 +357,7 @@ type HarnessNode struct {
|
||||
lnrpc.LightningClient
|
||||
lnrpc.WalletUnlockerClient
|
||||
invoicesrpc.InvoicesClient
|
||||
peersrpc.PeersClient
|
||||
SignerClient signrpc.SignerClient
|
||||
RouterClient routerrpc.RouterClient
|
||||
WalletKitClient walletrpc.WalletKitClient
|
||||
@@ -387,6 +389,7 @@ type RPCClients struct {
|
||||
var _ lnrpc.LightningClient = (*HarnessNode)(nil)
|
||||
var _ lnrpc.WalletUnlockerClient = (*HarnessNode)(nil)
|
||||
var _ invoicesrpc.InvoicesClient = (*HarnessNode)(nil)
|
||||
var _ peersrpc.PeersClient = (*HarnessNode)(nil)
|
||||
|
||||
// nextNodeID generates a unique sequence to be used as the node's ID.
|
||||
func nextNodeID() int {
|
||||
@@ -952,6 +955,7 @@ func (hn *HarnessNode) initLightningClient() error {
|
||||
hn.Watchtower = watchtowerrpc.NewWatchtowerClient(conn)
|
||||
hn.WatchtowerClient = wtclientrpc.NewWatchtowerClientClient(conn)
|
||||
hn.SignerClient = signrpc.NewSignerClient(conn)
|
||||
hn.PeersClient = peersrpc.NewPeersClient(conn)
|
||||
hn.StateClient = lnrpc.NewStateClient(conn)
|
||||
hn.ChainClient = chainrpc.NewChainNotifierClient(conn)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/lightningnetwork/lnd/chainreg"
|
||||
"github.com/lightningnetwork/lnd/funding"
|
||||
"github.com/lightningnetwork/lnd/lnrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/peersrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
|
||||
"github.com/lightningnetwork/lnd/lntest"
|
||||
"github.com/lightningnetwork/lnd/lntest/wait"
|
||||
@@ -767,3 +768,27 @@ func subscribeGraphNotifications(ctxb context.Context, t *harnessTest,
|
||||
quit: quit,
|
||||
}
|
||||
}
|
||||
|
||||
// testUpdateNodeAnnouncement ensures that the RPC endpoint validates
|
||||
// the requests correctly and that the new node announcement is brodcasted
|
||||
// with the right information after updating our node.
|
||||
func testUpdateNodeAnnouncement(net *lntest.NetworkHarness, t *harnessTest) {
|
||||
ctxb := context.Background()
|
||||
|
||||
var lndArgs []string
|
||||
dave := net.NewNode(t.t, "Dave", lndArgs)
|
||||
defer shutdownAndAssert(net, t, dave)
|
||||
|
||||
// We cannot differentiate between requests with Alias = "" and requests
|
||||
// that do not provide that field. If a user sets Alias = "" in the request
|
||||
// the field will simply be ignored. The request must fail because no
|
||||
// modifiers are applied.
|
||||
invalidNodeAnnReq := &peersrpc.NodeAnnouncementUpdateRequest{
|
||||
Alias: "",
|
||||
}
|
||||
ctxt, cancel := context.WithTimeout(ctxb, defaultTimeout)
|
||||
defer cancel()
|
||||
|
||||
_, err := dave.UpdateNodeAnnouncement(ctxt, invalidNodeAnnReq)
|
||||
require.Error(t.t, err, "requests without modifiers should field")
|
||||
}
|
||||
@@ -84,6 +84,10 @@ var allTestCases = []*testCase{
|
||||
name: "update channel status",
|
||||
test: testUpdateChanStatus,
|
||||
},
|
||||
{
|
||||
name: "test update node announcement rpc",
|
||||
test: testUpdateNodeAnnouncement,
|
||||
},
|
||||
{
|
||||
name: "list outgoing payments",
|
||||
test: testListPayments,
|
||||
|
||||
Reference in new issue
Block a user