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

View File

@ -72,13 +72,13 @@ sealed class ApiType {
@Serializable @Serializable
@SerialName("payment_received") @SerialName("payment_received")
data class PaymentReceived(@SerialName("amountSat") val amount: Satoshi, val paymentHash: ByteVector32) : ApiEvent() { data class PaymentReceived(@SerialName("amountSat") val amount: Satoshi, val paymentHash: ByteVector32, val externalId: String?) : ApiEvent() {
constructor(event: fr.acinq.lightning.PaymentEvents.PaymentReceived) : this(event.amount.truncateToSatoshi(), event.paymentHash) constructor(event: fr.acinq.lightning.PaymentEvents.PaymentReceived, metadata: PaymentMetadata?) : this(event.amount.truncateToSatoshi(), event.paymentHash, metadata?.externalId)
} }
@Serializable @Serializable
@SerialName("payment_sent") @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( constructor(event: fr.acinq.lightning.io.PaymentSent) : this(
event.payment.recipientAmount.truncateToSatoshi(), event.payment.recipientAmount.truncateToSatoshi(),
event.payment.routingFee.truncateToSatoshi(), event.payment.routingFee.truncateToSatoshi(),