lnworker: differentiate PaymentInfo by direction
Allows storing two different payment info of the same payment hash by including the direction into the db key. We create and store PaymentInfo for sending attempts and for requests (receiving), if we try to pay ourself (e.g. through a channel rebalance) the checks in `save_payment_info` would prevent this and throw an exception. By storing the PaymentInfos of outgoing and incoming payments separately in the db this collision is avoided and it makes it easier to reason about which PaymentInfo belongs where.
This commit is contained in:
@@ -8,7 +8,7 @@ from electrum.logging import get_logger
|
||||
from electrum.invoices import (
|
||||
PR_UNPAID, PR_EXPIRED, PR_UNKNOWN, PR_PAID, PR_INFLIGHT, PR_FAILED, PR_ROUTING, PR_UNCONFIRMED, LN_EXPIRY_NEVER
|
||||
)
|
||||
from electrum.lnutil import MIN_FUNDING_SAT
|
||||
from electrum.lnutil import MIN_FUNDING_SAT, RECEIVED
|
||||
from electrum.lnurl import LNURL3Data, request_lnurl_withdraw_callback, LNURLError
|
||||
from electrum.payment_identifier import PaymentIdentifier, PaymentIdentifierType
|
||||
from electrum.i18n import _
|
||||
@@ -237,7 +237,7 @@ class QERequestDetails(QObject, QtEventListener):
|
||||
address=None,
|
||||
)
|
||||
req = self._wallet.wallet.get_request(key)
|
||||
info = self._wallet.wallet.lnworker.get_payment_info(req.payment_hash)
|
||||
info = self._wallet.wallet.lnworker.get_payment_info(req.payment_hash, direction=RECEIVED)
|
||||
_lnaddr, b11_invoice = self._wallet.wallet.lnworker.get_bolt11_invoice(
|
||||
payment_info=info,
|
||||
message=req.get_message(),
|
||||
|
||||
@@ -18,6 +18,7 @@ from electrum.util import (
|
||||
NotEnoughFunds, NoDynamicFeeEstimates, parse_max_spend, UserCancelled, ChoiceItem,
|
||||
UserFacingException,
|
||||
)
|
||||
from electrum.lnutil import RECEIVED
|
||||
from electrum.invoices import PR_PAID, Invoice, PR_BROADCASTING, PR_BROADCAST
|
||||
from electrum.transaction import Transaction, PartialTxInput, PartialTxOutput
|
||||
from electrum.network import TxBroadcastError, BestEffortRequestFailed
|
||||
@@ -979,7 +980,7 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
|
||||
address=None,
|
||||
)
|
||||
req = self.wallet.get_request(key)
|
||||
info = self.wallet.lnworker.get_payment_info(req.payment_hash)
|
||||
info = self.wallet.lnworker.get_payment_info(req.payment_hash, direction=RECEIVED)
|
||||
_lnaddr, b11_invoice = self.wallet.lnworker.get_bolt11_invoice(
|
||||
payment_info=info,
|
||||
message=req.get_message(),
|
||||
|
||||
Reference in New Issue
Block a user