Add externalId to PaymentReceived event

PaymentSent is also not a ApiEvent anymore.
This commit is contained in:
Dominique Padiou 2024-03-19 11:58:39 +01:00
parent d872fc3573
commit 83dd62a98c
No known key found for this signature in database
GPG Key ID: 574C8C6A1673E987
2 changed files with 12 additions and 15 deletions

View File

@ -28,6 +28,7 @@ import fr.acinq.lightning.bin.conf.getOrGenerateSeed
import fr.acinq.lightning.bin.conf.readConfFile
import fr.acinq.lightning.bin.db.SqliteChannelsDb
import fr.acinq.lightning.bin.db.SqlitePaymentsDb
import fr.acinq.lightning.bin.db.WalletPaymentId
import fr.acinq.lightning.bin.db.payments.LightningOutgoingQueries
import fr.acinq.lightning.bin.json.ApiType
import fr.acinq.lightning.bin.logs.FileLogWriter
@ -235,12 +236,14 @@ class Phoenixd : CliktCommand() {
lease_typeAdapter = EnumColumnAdapter()
)
)
val channelsDb = SqliteChannelsDb(driver, database)
val paymentsDb = SqlitePaymentsDb(database)
val electrum = ElectrumClient(scope, loggerFactory)
val peer = Peer(
nodeParams = nodeParams, walletParams = lsp.walletParams, watcher = ElectrumWatcher(electrum, scope, loggerFactory), db = object : Databases {
override val channels: ChannelsDb get() = SqliteChannelsDb(driver, database)
override val payments: PaymentsDb get() = SqlitePaymentsDb(database)
override val channels: ChannelsDb get() = channelsDb
override val payments: PaymentsDb get() = paymentsDb
}, socketBuilder = TcpSocket.Builder(), scope
)
@ -250,16 +253,10 @@ class Phoenixd : CliktCommand() {
nodeParams.nodeEvents
.collect {
when {
it is PaymentEvents.PaymentReceived && it.amount > 0.msat -> emit(ApiType.PaymentReceived(it))
else -> {}
it is PaymentEvents.PaymentReceived && it.amount > 0.msat -> {
val metadata = paymentsDb.metadataQueries.get(WalletPaymentId.IncomingPaymentId(it.paymentHash))
emit(ApiType.PaymentReceived(it, metadata))
}
}
}
launch {
peer.eventsFlow
.collect {
when {
it is fr.acinq.lightning.io.PaymentSent -> emit(ApiType.PaymentSent(it))
else -> {}
}
}

View File

@ -72,13 +72,13 @@ sealed class ApiType {
@Serializable
@SerialName("payment_received")
data class PaymentReceived(@SerialName("amountSat") val amount: Satoshi, val paymentHash: ByteVector32) : ApiEvent() {
constructor(event: fr.acinq.lightning.PaymentEvents.PaymentReceived) : this(event.amount.truncateToSatoshi(), event.paymentHash)
data class PaymentReceived(@SerialName("amountSat") val amount: Satoshi, val paymentHash: ByteVector32, val externalId: String?) : ApiEvent() {
constructor(event: fr.acinq.lightning.PaymentEvents.PaymentReceived, metadata: PaymentMetadata?) : this(event.amount.truncateToSatoshi(), event.paymentHash, metadata?.externalId)
}
@Serializable
@SerialName("payment_sent")
data class PaymentSent(@SerialName("recipientAmountSat") val recipientAmount: Satoshi, @SerialName("routingFeeSat") val routingFee: Satoshi, @SerialName("paymentId") val uuid: UUID, val paymentHash: ByteVector32, val paymentPreimage: ByteVector32) : ApiEvent() {
data class PaymentSent(@SerialName("recipientAmountSat") val recipientAmount: Satoshi, @SerialName("routingFeeSat") val routingFee: Satoshi, @SerialName("paymentId") val uuid: UUID, val paymentHash: ByteVector32, val paymentPreimage: ByteVector32) : ApiType() {
constructor(event: fr.acinq.lightning.io.PaymentSent) : this(
event.payment.recipientAmount.truncateToSatoshi(),
event.payment.routingFee.truncateToSatoshi(),