commit 5b19ae252484010728591ffe504b1da8301b9403
parent 4810f43922486dfb56273e5b93222978fa07585e
Author: Antoine A <>
Date: Thu, 25 Jul 2024 16:54:50 +0200
nexus: support KYC transaction in listing command
Diffstat:
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/cli/Testing.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/cli/Testing.kt
@@ -228,13 +228,13 @@ class ListCmd: CliktCommand("List nexus transactions", name = "list") {
val txs = db.payment.metadataIncoming()
Pair(
listOf(
- "transaction", "id", "reserve_pub", "debtor", "subject"
+ "transaction", "id", "talerable", "debtor", "subject"
),
txs.map {
listOf(
"${it.date} ${it.amount}",
it.id.toString(),
- it.reservePub?.toString() ?: "",
+ it.talerable?.toString() ?: "",
fmtPayto(it.debtor),
it.subject
)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt
@@ -205,20 +205,28 @@ class PaymentDAO(private val db: Database) {
,execution_time
,debit_payto_uri
,bank_id
+ ,type
,reserve_public_key
+ ,account_pub
FROM incoming_transactions
LEFT OUTER JOIN talerable_incoming_transactions using (incoming_transaction_id)
ORDER BY execution_time
"""
) {
all {
+ val type = it.getOptEnum<TalerIncomingType>("type")
IncomingTxMetadata(
date = it.getLong("execution_time").asInstant(),
amount = it.getDecimal("amount"),
subject = it.getString("wire_transfer_subject"),
debtor = it.getString("debit_payto_uri"),
id = it.getString("bank_id"),
- reservePub = it.getBytes("reserve_public_key")?.run { EddsaPublicKey(this) }
+ talerable = when (type) {
+ null -> null
+ TalerIncomingType.reserve -> "reserve ${EddsaPublicKey(it.getBytes("reserve_public_key"))}"
+ TalerIncomingType.kyc -> "kyc ${EddsaPublicKey(it.getBytes("account_pub"))}"
+ TalerIncomingType.wad -> throw UnsupportedOperationException()
+ }
)
}
}
@@ -294,7 +302,7 @@ data class IncomingTxMetadata(
val subject: String,
val debtor: String,
val id: String?,
- val reservePub: EddsaPublicKey?
+ val talerable: String?
)
/** Outgoing transaction metadata for debugging */
diff --git a/nexus/src/test/kotlin/CliTest.kt b/nexus/src/test/kotlin/CliTest.kt
@@ -152,9 +152,11 @@ class CliTest {
// Check with taler transactions
talerableOut(db)
talerableIn(db)
+ talerableKycIn(db)
check()
// Check with null id
talerableIn(db, true)
+ talerableKycIn(db, true)
check()
}
}
\ No newline at end of file