2788dbeaa8
This commit adds a new RPC command: `channelbalance` which returns the sum of all available channel capacity across all open channels. The total balance is currently returned in units of `satoshis`. Additionally the `networkHarness` has been modified slightly to allow specifying the additional "extra" command line parameters when creating the initial seed nodes. Minor refactoring within the integration tests has been undertaken in order to increase code re-use across tests. Closes #29.
71 lines
1.4 KiB
Go
71 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/lightningnetwork/lnd/lnrpc"
|
|
"github.com/urfave/cli"
|
|
|
|
"google.golang.org/grpc"
|
|
)
|
|
|
|
func fatal(err error) {
|
|
fmt.Fprintf(os.Stderr, "[lncli] %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
func getClient(ctx *cli.Context) lnrpc.LightningClient {
|
|
conn := getClientConn(ctx)
|
|
return lnrpc.NewLightningClient(conn)
|
|
}
|
|
|
|
func getClientConn(ctx *cli.Context) *grpc.ClientConn {
|
|
// TODO(roasbeef): macaroon based auth
|
|
// * http://www.grpc.io/docs/guides/auth.html
|
|
// * http://research.google.com/pubs/pub41892.html
|
|
// * https://github.com/go-macaroon/macaroon
|
|
opts := []grpc.DialOption{grpc.WithInsecure()}
|
|
|
|
conn, err := grpc.Dial(ctx.GlobalString("rpcserver"), opts...)
|
|
if err != nil {
|
|
fatal(err)
|
|
}
|
|
|
|
return conn
|
|
}
|
|
|
|
func main() {
|
|
app := cli.NewApp()
|
|
app.Name = "lncli"
|
|
app.Version = "0.1"
|
|
app.Usage = "control plane for your LN daemon"
|
|
app.Flags = []cli.Flag{
|
|
cli.StringFlag{
|
|
Name: "rpcserver",
|
|
Value: "localhost:10009",
|
|
Usage: "host:port of ln daemon",
|
|
},
|
|
}
|
|
app.Commands = []cli.Command{
|
|
NewAddressCommand,
|
|
SendManyCommand,
|
|
SendCoinsCommand,
|
|
ConnectCommand,
|
|
OpenChannelCommand,
|
|
CloseChannelCommand,
|
|
ListPeersCommand,
|
|
WalletBalanceCommand,
|
|
ChannelBalanceCommand,
|
|
ShellCommand,
|
|
GetInfoCommand,
|
|
PendingChannelsCommand,
|
|
SendPaymentCommand,
|
|
ShowRoutingTableCommand,
|
|
}
|
|
|
|
if err := app.Run(os.Args); err != nil {
|
|
fatal(err)
|
|
}
|
|
}
|