Add payment's UUID to /payinvoice response

The UUID is required to query details for the payment later
on, and should thus be exposed by the API when the payment
has been sent successfully.
This commit is contained in:
Dominique Padiou 2024-03-18 19:30:47 +01:00
parent 64775d2fd5
commit 4b59be44b5
No known key found for this signature in database
GPG Key ID: 574C8C6A1673E987

View File

@ -9,6 +9,7 @@
JsonSerializers.ByteVector32Serializer::class,
JsonSerializers.PublicKeySerializer::class,
JsonSerializers.TxIdSerializer::class,
JsonSerializers.UUIDSerializer::class
)
package fr.acinq.lightning.bin.json
@ -23,6 +24,7 @@ import fr.acinq.lightning.channel.states.ChannelState
import fr.acinq.lightning.channel.states.ChannelStateWithCommitments
import fr.acinq.lightning.db.LightningOutgoingPayment
import fr.acinq.lightning.json.JsonSerializers
import fr.acinq.lightning.utils.UUID
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers
@ -76,10 +78,11 @@ sealed class ApiType {
@Serializable
@SerialName("payment_sent")
data class PaymentSent(@SerialName("recipientAmountSat") val recipientAmount: Satoshi, @SerialName("routingFeeSat") val routingFee: Satoshi, val paymentHash: ByteVector32, val paymentPreimage: ByteVector32) : ApiEvent() {
data class PaymentSent(@SerialName("recipientAmountSat") val recipientAmount: Satoshi, @SerialName("routingFeeSat") val routingFee: Satoshi, @SerialName("localId") val uuid: UUID, val paymentHash: ByteVector32, val paymentPreimage: ByteVector32) : ApiEvent() {
constructor(event: fr.acinq.lightning.io.PaymentSent) : this(
event.payment.recipientAmount.truncateToSatoshi(),
event.payment.routingFee.truncateToSatoshi(),
event.request.paymentId,
event.payment.paymentHash,
(event.payment.status as LightningOutgoingPayment.Status.Completed.Succeeded.OffChain).preimage
)