From fce366894dc548312666ddef8fab9f179380c86b Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Mon, 2 Jan 2017 15:34:49 -0800 Subject: [PATCH] rpcserver: return an encoded payment request in AddInvoice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit modifies the generated response to an “AddInvoice” RPC by including an encoded payment request in the response. This change gives callers a new atomic piece of information that they can present to the payee, to allow completion of the payment in a seamless manner. --- rpcserver.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/rpcserver.go b/rpcserver.go index 97958142..865c83d1 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -965,13 +965,21 @@ func (r *rpcServer) AddInvoice(ctx context.Context, return nil, err } - // Finally generate the payment hash itself from the pre-image. This - // will be used by clients to query for the state of a particular - // invoice. + // Next, generate the payment hash itself from the pre-image. This will + // be used by clients to query for the state of a particular invoice. rHash := fastsha256.Sum256(paymentPreimage[:]) + // Finally we also create an encoded payment request which allows the + // caller to comactly send the invoice to the payer. + payReqString := zpay32.Encode(&zpay32.PaymentRequest{ + Destination: r.server.identityPriv.PubKey(), + PaymentHash: rHash, + Amount: btcutil.Amount(invoice.Value), + }) + return &lnrpc.AddInvoiceResponse{ - RHash: rHash[:], + RHash: rHash[:], + PaymentRequest: payReqString, }, nil }