rpcserver: return an encoded payment request in AddInvoice

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.
This commit is contained in:
Olaoluwa Osuntokun 2017-01-02 15:34:49 -08:00
parent ca84c620ea
commit fce366894d
No known key found for this signature in database
GPG Key ID: 9CC5B105D03521A2

View File

@ -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
}