electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit e7ab9e4054d37c95cd57ad051d6d8249cc7ddccf
parent 5fda2cbb424e3b6ad3f17d76a153301173b6aee2
Author: SomberNight <somber.night@protonmail.com>
Date:   Mon, 24 Feb 2020 21:23:13 +0100

lnpeer: await_remote/await_local now more restrictive, and docstring

Previously it was not so clear what these methods were doing.

Diffstat:
Melectrum/lnpeer.py | 12++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py @@ -1019,15 +1019,19 @@ class Peer(Logger): self.send_message("commitment_signed", channel_id=chan.channel_id, signature=sig_64, num_htlcs=len(htlc_sigs), htlc_signature=b"".join(htlc_sigs)) async def await_remote(self, chan: Channel, ctn: int): + """Wait until remote 'ctn' gets revoked.""" + # if 'ctn' is too high, we risk waiting "forever", hence assert: + assert chan.get_latest_ctn(REMOTE) >= ctn, (chan.get_latest_ctn(REMOTE), ctn) self.maybe_send_commitment(chan) - # TODO review this. I suspect some callers want updates irrevocably committed, - # so comparision should use chan.get_oldest_unrevoked_ctn(REMOTE) - while chan.get_latest_ctn(REMOTE) <= ctn: + while chan.get_oldest_unrevoked_ctn(REMOTE) <= ctn: await self._remote_changed_events[chan.channel_id].wait() async def await_local(self, chan: Channel, ctn: int): + """Wait until local 'ctn' gets revoked.""" + # if 'ctn' is too high, we risk waiting "forever", hence assert: + assert chan.get_latest_ctn(LOCAL) >= ctn, (chan.get_latest_ctn(LOCAL), ctn) self.maybe_send_commitment(chan) - while chan.get_latest_ctn(LOCAL) <= ctn: + while chan.get_oldest_unrevoked_ctn(LOCAL) <= ctn: await self._local_changed_events[chan.channel_id].wait() async def pay(self, route: 'LNPaymentRoute', chan: Channel, amount_msat: int,