1
0

swaps: broadcast_transaction error-handling

This commit is contained in:
SomberNight
2024-06-05 19:00:51 +00:00
parent 6b02364457
commit 7a0bffc3e3
3 changed files with 16 additions and 4 deletions

View File

@@ -30,7 +30,7 @@ from .i18n import _
from .bitcoin import construct_script
from .crypto import ripemd
from .invoices import Invoice
from .network import TxBroadcastServerReturnedError
from .network import TxBroadcastError
from .lnonion import OnionRoutingFailure, OnionFailureCode
@@ -312,7 +312,7 @@ class SwapManager(Logger):
tx = self.lnwatcher.adb.get_transaction(txin.spent_txid)
try:
await self.network.broadcast_transaction(tx)
except TxBroadcastServerReturnedError:
except TxBroadcastError:
self.logger.info(f'error broadcasting claim tx {txin.spent_txid}')
elif funding_height.height == TX_HEIGHT_LOCAL:
# the funding tx was double spent.
@@ -385,7 +385,7 @@ class SwapManager(Logger):
if funding_height.conf > 0 or (swap.is_reverse and self.wallet.config.LIGHTNING_ALLOW_INSTANT_SWAPS):
try:
await self.network.broadcast_transaction(tx)
except TxBroadcastServerReturnedError:
except TxBroadcastError:
self.logger.info(f'error broadcasting claim tx {txin.spent_txid}')
def get_claim_fee(self):
@@ -423,7 +423,7 @@ class SwapManager(Logger):
tx = self.create_funding_tx(swap, None, password=password, batch_rbf=batch_rbf)
try:
await self.broadcast_funding_tx(swap, tx)
except TxBroadcastServerReturnedError:
except TxBroadcastError:
continue
break
@@ -704,6 +704,8 @@ class SwapManager(Logger):
payment_hash = swap.payment_hash
refund_pubkey = ECPrivkey(swap.privkey).get_public_key_bytes(compressed=True)
async def callback(payment_hash):
# FIXME what if this raises, e.g. TxBroadcastError?
# We will never retry the hold-invoice-callback.
await self.broadcast_funding_tx(swap, tx)
self.lnworker.register_hold_invoice(payment_hash, callback)