From d86ee1817cfb94993a5db6fec55a2c5b007d4277 Mon Sep 17 00:00:00 2001 From: boufni95 Date: Mon, 10 Jun 2024 22:54:30 +0200 Subject: [PATCH 1/2] fix --- src/services/main/paymentManager.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/services/main/paymentManager.ts b/src/services/main/paymentManager.ts index 3a8e37c7..34ec5a22 100644 --- a/src/services/main/paymentManager.ts +++ b/src/services/main/paymentManager.ts @@ -164,6 +164,10 @@ export default class { const isAppUserPayment = userId !== linkedApplication.owner.user_id const serviceFee = this.getServiceFee(Types.UserOperationType.OUTGOING_INVOICE, payAmount, isAppUserPayment) const internalInvoice = await this.storage.paymentStorage.GetInvoiceOwner(req.invoice) + const invoiceAlreadyPaid = await this.storage.paymentStorage.GetPaymentOwner(req.invoice) + if (invoiceAlreadyPaid || (internalInvoice && internalInvoice.paid_at_unix > 0)) { + throw new Error("this invoice was already paid") + } let paymentInfo = { preimage: "", amtPaid: 0, networkFee: 0, serialId: 0 } if (internalInvoice) { paymentInfo = await this.PayInternalInvoice(userId, internalInvoice, { payAmount, serviceFee }, linkedApplication) From 485fe9dc660e2f874de92c3c3eb30638bfa428d9 Mon Sep 17 00:00:00 2001 From: boufni95 Date: Mon, 10 Jun 2024 22:55:50 +0200 Subject: [PATCH 2/2] fix --- src/services/main/paymentManager.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/main/paymentManager.ts b/src/services/main/paymentManager.ts index 34ec5a22..647f4fd8 100644 --- a/src/services/main/paymentManager.ts +++ b/src/services/main/paymentManager.ts @@ -164,8 +164,11 @@ export default class { const isAppUserPayment = userId !== linkedApplication.owner.user_id const serviceFee = this.getServiceFee(Types.UserOperationType.OUTGOING_INVOICE, payAmount, isAppUserPayment) const internalInvoice = await this.storage.paymentStorage.GetInvoiceOwner(req.invoice) + if (internalInvoice && internalInvoice.paid_at_unix > 0) { + throw new Error("this invoice was already paid") + } const invoiceAlreadyPaid = await this.storage.paymentStorage.GetPaymentOwner(req.invoice) - if (invoiceAlreadyPaid || (internalInvoice && internalInvoice.paid_at_unix > 0)) { + if (invoiceAlreadyPaid && invoiceAlreadyPaid.paid_at_unix > 0) { throw new Error("this invoice was already paid") } let paymentInfo = { preimage: "", amtPaid: 0, networkFee: 0, serialId: 0 }