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)