lncli: add account flag to wallet related commands

This commit is contained in:
Wilmer Paulino 2021-02-19 17:41:56 -08:00
parent a7211b34c3
commit c7bed34bca
No known key found for this signature in database
GPG Key ID: 6DF57B9F9514972F
2 changed files with 33 additions and 6 deletions

@ -127,6 +127,13 @@ var newAddressCommand = cli.Command{
Category: "Wallet", Category: "Wallet",
Usage: "Generates a new address.", Usage: "Generates a new address.",
ArgsUsage: "address-type", ArgsUsage: "address-type",
Flags: []cli.Flag{
cli.StringFlag{
Name: "account",
Usage: "(optional) the name of the account to " +
"generate a new address for",
},
},
Description: ` Description: `
Generate a wallet new address. Address-types has to be one of: Generate a wallet new address. Address-types has to be one of:
- p2wkh: Pay to witness key hash - p2wkh: Pay to witness key hash
@ -136,13 +143,16 @@ var newAddressCommand = cli.Command{
func newAddress(ctx *cli.Context) error { func newAddress(ctx *cli.Context) error {
ctxc := getContext() ctxc := getContext()
client, cleanUp := getClient(ctx)
defer cleanUp()
stringAddrType := ctx.Args().First() // Display the command's help message if we do not have the expected
// number of arguments/flags.
if ctx.NArg() != 1 || ctx.NumFlags() > 1 {
return cli.ShowCommandHelp(ctx, "newaddress")
}
// Map the string encoded address type, to the concrete typed address // Map the string encoded address type, to the concrete typed address
// type enum. An unrecognized address type will result in an error. // type enum. An unrecognized address type will result in an error.
stringAddrType := ctx.Args().First()
var addrType lnrpc.AddressType var addrType lnrpc.AddressType
switch stringAddrType { // TODO(roasbeef): make them ints on the cli? switch stringAddrType { // TODO(roasbeef): make them ints on the cli?
case "p2wkh": case "p2wkh":
@ -154,8 +164,12 @@ func newAddress(ctx *cli.Context) error {
"are: p2wkh and np2wkh", stringAddrType) "are: p2wkh and np2wkh", stringAddrType)
} }
client, cleanUp := getClient(ctx)
defer cleanUp()
addr, err := client.NewAddress(ctxc, &lnrpc.NewAddressRequest{ addr, err := client.NewAddress(ctxc, &lnrpc.NewAddressRequest{
Type: addrType, Type: addrType,
Account: ctx.String("account"),
}) })
if err != nil { if err != nil {
return err return err

@ -523,6 +523,11 @@ var fundPsbtCommand = cli.Command{
Usage: "a manual fee expressed in sat/vbyte that " + Usage: "a manual fee expressed in sat/vbyte that " +
"should be used when creating the transaction", "should be used when creating the transaction",
}, },
cli.StringFlag{
Name: "account",
Usage: "(optional) the name of the account to use to " +
"create/fund the PSBT",
},
}, },
Action: actionDecorator(fundPsbt), Action: actionDecorator(fundPsbt),
} }
@ -536,7 +541,9 @@ func fundPsbt(ctx *cli.Context) error {
return cli.ShowCommandHelp(ctx, "fund") return cli.ShowCommandHelp(ctx, "fund")
} }
req := &walletrpc.FundPsbtRequest{} req := &walletrpc.FundPsbtRequest{
Account: ctx.String("account"),
}
// Parse template flags. // Parse template flags.
switch { switch {
@ -691,6 +698,11 @@ var finalizePsbtCommand = cli.Command{
Name: "funded_psbt", Name: "funded_psbt",
Usage: "the base64 encoded PSBT to finalize", Usage: "the base64 encoded PSBT to finalize",
}, },
cli.StringFlag{
Name: "account",
Usage: "(optional) the name of the account to " +
"finalize the PSBT with",
},
}, },
Action: actionDecorator(finalizePsbt), Action: actionDecorator(finalizePsbt),
} }
@ -700,7 +712,7 @@ func finalizePsbt(ctx *cli.Context) error {
// Display the command's help message if we do not have the expected // Display the command's help message if we do not have the expected
// number of arguments/flags. // number of arguments/flags.
if ctx.NArg() != 1 && ctx.NumFlags() != 1 { if ctx.NArg() > 1 || ctx.NumFlags() > 2 {
return cli.ShowCommandHelp(ctx, "finalize") return cli.ShowCommandHelp(ctx, "finalize")
} }
@ -723,6 +735,7 @@ func finalizePsbt(ctx *cli.Context) error {
} }
req := &walletrpc.FinalizePsbtRequest{ req := &walletrpc.FinalizePsbtRequest{
FundedPsbt: psbtBytes, FundedPsbt: psbtBytes,
Account: ctx.String("account"),
} }
walletClient, cleanUp := getWalletClient(ctx) walletClient, cleanUp := getWalletClient(ctx)