cmd/lncli: add support for the net channel graph related commands
This commit adds support for the newly added channel graph related commands: describegraph, getchaninfo, getnodeinfo, queryroute, and finally getnetworkinfo.
This commit is contained in:
parent
367be2d385
commit
507a4eb5cc
@ -777,6 +777,127 @@ func listPayments(ctx *cli.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
printRespJson(payments)
|
printRespJson(payments)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var GetChanInfoCommand = cli.Command{
|
||||||
|
Name: "getchaninfo",
|
||||||
|
Usage: "getchaninfo --chand_id=[8_byte_channel_id]",
|
||||||
|
Description: "prints out the latest authenticated state for a " +
|
||||||
|
"particular channel",
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
cli.IntFlag{
|
||||||
|
Name: "chan_id",
|
||||||
|
Usage: "the 8-byte compact channel ID to query for",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: getChanInfo,
|
||||||
|
}
|
||||||
|
|
||||||
|
func getChanInfo(ctx *cli.Context) error {
|
||||||
|
ctxb := context.Background()
|
||||||
|
client := getClient(ctx)
|
||||||
|
|
||||||
|
req := &lnrpc.ChanInfoRequest{
|
||||||
|
ChanId: uint64(ctx.Int("chan_id")),
|
||||||
|
}
|
||||||
|
|
||||||
|
chanInfo, err := client.GetChanInfo(ctxb, req)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
printRespJson(chanInfo)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var GetNodeInfoCommand = cli.Command{
|
||||||
|
Name: "getnodeinfo",
|
||||||
|
Usage: "getnodeinfo --pub_key=[33_byte_serialized_pub_lky]",
|
||||||
|
Description: "prints out the latest authenticated node state for an " +
|
||||||
|
"advertised node",
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "pub_key",
|
||||||
|
Usage: "the 33-byte hex-encoded compressed public of the target " +
|
||||||
|
"node",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: getNodeInfo,
|
||||||
|
}
|
||||||
|
|
||||||
|
func getNodeInfo(ctx *cli.Context) error {
|
||||||
|
ctxb := context.Background()
|
||||||
|
client := getClient(ctx)
|
||||||
|
|
||||||
|
req := &lnrpc.NodeInfoRequest{
|
||||||
|
PubKey: ctx.String("pub_key"),
|
||||||
|
}
|
||||||
|
|
||||||
|
nodeInfo, err := client.GetNodeInfo(ctxb, req)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
printRespJson(nodeInfo)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var QueryRouteCommand = cli.Command{
|
||||||
|
Name: "queryroute",
|
||||||
|
Usage: "queryroute --dest=[dest_pub_key] --amt=[amt_to_send_in_satoshis]",
|
||||||
|
Description: "queries the channel router for a potential path to the destination that has sufficient flow for the amount including fees",
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "dest",
|
||||||
|
Usage: "the 33-byte hex-encoded public key for the payment " +
|
||||||
|
"destination",
|
||||||
|
},
|
||||||
|
cli.IntFlag{
|
||||||
|
Name: "amt",
|
||||||
|
Usage: "the amount to send expressed in satoshis",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: queryRoute,
|
||||||
|
}
|
||||||
|
|
||||||
|
func queryRoute(ctx *cli.Context) error {
|
||||||
|
ctxb := context.Background()
|
||||||
|
client := getClient(ctx)
|
||||||
|
|
||||||
|
req := &lnrpc.RouteRequest{
|
||||||
|
PubKey: ctx.String("dest"),
|
||||||
|
Amt: int64(ctx.Int("amt")),
|
||||||
|
}
|
||||||
|
|
||||||
|
route, err := client.QueryRoute(ctxb, req)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
printRespJson(route)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var GetNetworkInfoCommand = cli.Command{
|
||||||
|
Name: "getnetworkinfo",
|
||||||
|
Usage: "getnetworkinfo",
|
||||||
|
Description: "returns a set of statistics pertaining to the known channel " +
|
||||||
|
"graph",
|
||||||
|
Action: getNetworkInfo,
|
||||||
|
}
|
||||||
|
|
||||||
|
func getNetworkInfo(ctx *cli.Context) error {
|
||||||
|
ctxb := context.Background()
|
||||||
|
client := getClient(ctx)
|
||||||
|
|
||||||
|
req := &lnrpc.NetworkInfoRequest{}
|
||||||
|
|
||||||
|
netInfo, err := client.GetNetworkInfo(ctxb, req)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
printRespJson(netInfo)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ func main() {
|
|||||||
app := cli.NewApp()
|
app := cli.NewApp()
|
||||||
app.Name = "lncli"
|
app.Name = "lncli"
|
||||||
app.Version = "0.1"
|
app.Version = "0.1"
|
||||||
app.Usage = "control plane for your LN daemon"
|
app.Usage = "control plane for your Lightning Network Daemon (lnd)"
|
||||||
app.Flags = []cli.Flag{
|
app.Flags = []cli.Flag{
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "rpcserver",
|
Name: "rpcserver",
|
||||||
@ -63,9 +63,13 @@ func main() {
|
|||||||
AddInvoiceCommand,
|
AddInvoiceCommand,
|
||||||
LookupInvoiceCommand,
|
LookupInvoiceCommand,
|
||||||
ListInvoicesCommand,
|
ListInvoicesCommand,
|
||||||
DescribeGraphCommand,
|
|
||||||
ListChannelsCommand,
|
ListChannelsCommand,
|
||||||
ListPaymentsCommand,
|
ListPaymentsCommand,
|
||||||
|
DescribeGraphCommand,
|
||||||
|
GetChanInfoCommand,
|
||||||
|
GetNodeInfoCommand,
|
||||||
|
QueryRouteCommand,
|
||||||
|
GetNetworkInfoCommand,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := app.Run(os.Args); err != nil {
|
if err := app.Run(os.Args); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user