diff --git a/cmd/lncli/cmd_invoice.go b/cmd/lncli/cmd_invoice.go index 7eef6f6d1..a9bc57c16 100644 --- a/cmd/lncli/cmd_invoice.go +++ b/cmd/lncli/cmd_invoice.go @@ -82,6 +82,14 @@ var addInvoiceCommand = cli.Command{ Usage: "creates an AMP invoice. If true, preimage " + "should not be set.", }, + cli.BoolFlag{ + Name: "blind", + Usage: "creates an invoice that contains blinded " + + "paths. Note that invoices with blinded " + + "paths will be signed using a random " + + "ephemeral key so as not to reveal the real " + + "node ID of this node.", + }, }, Action: actionDecorator(addInvoice), } @@ -127,6 +135,11 @@ func addInvoice(ctx *cli.Context) error { return fmt.Errorf("unable to parse description_hash: %w", err) } + if ctx.IsSet("private") && ctx.IsSet("blind") { + return fmt.Errorf("cannot include both route hints and " + + "blinded paths in the same invoice") + } + invoice := &lnrpc.Invoice{ Memo: ctx.String("memo"), RPreimage: preimage, @@ -138,6 +151,7 @@ func addInvoice(ctx *cli.Context) error { CltvExpiry: ctx.Uint64("cltv_expiry_delta"), Private: ctx.Bool("private"), IsAmp: ctx.Bool("amp"), + Blind: ctx.Bool("blind"), } resp, err := client.AddInvoice(ctxc, invoice)