diff --git a/lightning_client.go b/lightning_client.go index 5d5e944..efdba55 100644 --- a/lightning_client.go +++ b/lightning_client.go @@ -1580,7 +1580,7 @@ func (s *lightningClient) AddInvoice(ctx context.Context, DescriptionHash: in.DescriptionHash, Expiry: in.Expiry, CltvExpiry: in.CltvExpiry, - Private: true, + Private: in.Private, } if in.Preimage != nil { diff --git a/lightning_client_test.go b/lightning_client_test.go index 485d5aa..9244873 100644 --- a/lightning_client_test.go +++ b/lightning_client_test.go @@ -66,7 +66,6 @@ func TestLightningClientAddInvoice(t *testing.T) { DescriptionHash: validAddInvoiceData.DescriptionHash, Expiry: validAddInvoiceData.Expiry, CltvExpiry: validAddInvoiceData.CltvExpiry, - Private: true, } validPayReq := "a valid pay req" @@ -85,6 +84,22 @@ func TestLightningClientAddInvoice(t *testing.T) { return validResp, nil } + privateAddInvoiceData := *validAddInvoiceData + privateAddInvoiceData.Private = true + privateInvoice := &lnrpc.Invoice{ + Memo: validAddInvoiceData.Memo, + RPreimage: validAddInvoiceData.Preimage[:], + RHash: validAddInvoiceData.Hash[:], + ValueMsat: int64(validAddInvoiceData.Value), + DescriptionHash: validAddInvoiceData.DescriptionHash, + Expiry: validAddInvoiceData.Expiry, + CltvExpiry: validAddInvoiceData.CltvExpiry, + Private: true, + } + privateAddInvoiceArgs := []addInvoiceArg{ + {in: privateInvoice}, + } + errorAddInvoice := func(in *lnrpc.Invoice, opts ...grpc.CallOption) ( *lnrpc.AddInvoiceResponse, error) { @@ -119,7 +134,20 @@ func TestLightningClientAddInvoice(t *testing.T) { hash: validRHash, payRequest: validPayReq, }, - }, { + }, + { + name: "private invoice", + client: mockRPCClient{ + addInvoice: validAddInvoice, + }, + invoice: &privateAddInvoiceData, + expect: expect{ + addInvoiceArgs: privateAddInvoiceArgs, + hash: validRHash, + payRequest: validPayReq, + }, + }, + { name: "rpc client error", client: mockRPCClient{ addInvoice: errorAddInvoice,