Browse Source

lnpeer: on_channel_open should not fail on server error

dependabot/pip/contrib/deterministic-build/ecdsa-0.13.3
SomberNight 6 years ago
committed by ThomasV
parent
commit
159fe04daf
  1. 6
      electrum/lnpeer.py

6
electrum/lnpeer.py

@ -45,7 +45,7 @@ from .lnutil import (Outpoint, LocalConfig, RECEIVED, UpdateAddHtlc,
from .lnutil import FeeUpdate from .lnutil import FeeUpdate
from .lntransport import LNTransport, LNTransportBase from .lntransport import LNTransport, LNTransportBase
from .lnmsg import encode_msg, decode_msg from .lnmsg import encode_msg, decode_msg
from .interface import GracefulDisconnect from .interface import GracefulDisconnect, NetworkException
if TYPE_CHECKING: if TYPE_CHECKING:
from .lnworker import LNWorker from .lnworker import LNWorker
@ -576,6 +576,7 @@ class Peer(Logger):
remote_sig = payload['signature'] remote_sig = payload['signature']
chan.receive_new_commitment(remote_sig, []) chan.receive_new_commitment(remote_sig, [])
# broadcast funding tx # broadcast funding tx
# TODO make more robust (timeout low? server returns error?)
await asyncio.wait_for(self.network.broadcast_transaction(funding_tx), 5) await asyncio.wait_for(self.network.broadcast_transaction(funding_tx), 5)
chan.open_with_first_pcp(remote_per_commitment_point, remote_sig) chan.open_with_first_pcp(remote_per_commitment_point, remote_sig)
return chan return chan
@ -659,10 +660,11 @@ class Peer(Logger):
self.lnworker.save_channel(chan) self.lnworker.save_channel(chan)
self.lnworker.lnwatcher.add_channel(chan.funding_outpoint.to_str(), chan.get_funding_address()) self.lnworker.lnwatcher.add_channel(chan.funding_outpoint.to_str(), chan.get_funding_address())
self.lnworker.on_channels_updated() self.lnworker.on_channels_updated()
# TODO make more robust
while True: while True:
try: try:
funding_tx = Transaction(await self.network.get_transaction(funding_txid)) funding_tx = Transaction(await self.network.get_transaction(funding_txid))
except aiorpcx.jsonrpc.RPCError as e: except NetworkException as e:
print("sleeping", str(e)) print("sleeping", str(e))
await asyncio.sleep(1) await asyncio.sleep(1)
else: else:

Loading…
Cancel
Save