diff --git a/cmd/lncli/cmd_invoice.go b/cmd/lncli/cmd_invoice.go index 4c60294ca..7eef6f6d1 100644 --- a/cmd/lncli/cmd_invoice.go +++ b/cmd/lncli/cmd_invoice.go @@ -60,6 +60,14 @@ var addInvoiceCommand = cli.Command{ "specified, an expiry of " + "86400 seconds (24 hours) is implied.", }, + cli.Uint64Flag{ + Name: "cltv_expiry_delta", + Usage: "The minimum CLTV delta to use for the final " + + "hop. If this is set to 0, the default value " + + "is used. The default value for " + + "cltv_expiry_delta is configured by the " + + "'bitcoin.timelockdelta' option.", + }, cli.BoolFlag{ Name: "private", Usage: "encode routing hints in the invoice with " + @@ -127,6 +135,7 @@ func addInvoice(ctx *cli.Context) error { DescriptionHash: descHash, FallbackAddr: ctx.String("fallback_addr"), Expiry: ctx.Int64("expiry"), + CltvExpiry: ctx.Uint64("cltv_expiry_delta"), Private: ctx.Bool("private"), IsAmp: ctx.Bool("amp"), } diff --git a/cmd/lncli/invoicesrpc_active.go b/cmd/lncli/invoicesrpc_active.go index 2ce900695..823af67bf 100644 --- a/cmd/lncli/invoicesrpc_active.go +++ b/cmd/lncli/invoicesrpc_active.go @@ -184,6 +184,14 @@ var addHoldInvoiceCommand = cli.Command{ "specified, an expiry of " + "86400 seconds (24 hours) is implied.", }, + cli.Uint64Flag{ + Name: "cltv_expiry_delta", + Usage: "The minimum CLTV delta to use for the final " + + "hop. If this is set to 0, the default value " + + "is used. The default value for " + + "cltv_expiry_delta is configured by the " + + "'bitcoin.timelockdelta' option.", + }, cli.BoolFlag{ Name: "private", Usage: "encode routing hints in the invoice with " + @@ -241,6 +249,7 @@ func addHoldInvoice(ctx *cli.Context) error { DescriptionHash: descHash, FallbackAddr: ctx.String("fallback_addr"), Expiry: ctx.Int64("expiry"), + CltvExpiry: ctx.Uint64("cltv_expiry_delta"), Private: ctx.Bool("private"), } diff --git a/docs/release-notes/release-notes-0.18.1.md b/docs/release-notes/release-notes-0.18.1.md index 9d48e76c8..e2288f166 100644 --- a/docs/release-notes/release-notes-0.18.1.md +++ b/docs/release-notes/release-notes-0.18.1.md @@ -24,6 +24,10 @@ ## RPC Additions ## lncli Additions +* [Added](https://github.com/lightningnetwork/lnd/pull/8491) the `cltv_expiry` + argument to `addinvoice` and `addholdinvoice`, allowing users to set the + `min_final_cltv_expiry_delta` + # Improvements ## Functional Updates ## RPC Updates diff --git a/lnrpc/invoicesrpc/addinvoice.go b/lnrpc/invoicesrpc/addinvoice.go index 3e20ebf62..4b55f3f0d 100644 --- a/lnrpc/invoicesrpc/addinvoice.go +++ b/lnrpc/invoicesrpc/addinvoice.go @@ -367,7 +367,7 @@ func AddInvoice(ctx context.Context, cfg *AddInvoiceConfig, if invoice.CltvExpiry < routing.MinCLTVDelta { return nil, nil, fmt.Errorf("CLTV delta of %v must be "+ "greater than minimum of %v", - routing.MinCLTVDelta, invoice.CltvExpiry) + invoice.CltvExpiry, routing.MinCLTVDelta) } options = append(options,