|
|
@ -167,6 +167,25 @@ class HTLCManager: |
|
|
|
if fee_update.ctns[LOCAL] is None and fee_update.ctns[REMOTE] <= self.ctn_latest(REMOTE): |
|
|
|
fee_update.ctns[LOCAL] = self.ctn_latest(LOCAL) + 1 |
|
|
|
|
|
|
|
def discard_unsigned_remote_updates(self): |
|
|
|
"""Discard updates sent by the remote, that the remote itself |
|
|
|
did not yet sign (i.e. there was no corresponding commitment_signed msg) |
|
|
|
""" |
|
|
|
# htlcs |
|
|
|
for htlc_id, ctns in list(self.log[REMOTE]['locked_in'].items()): |
|
|
|
if ctns[LOCAL] > self.ctn_latest(LOCAL): |
|
|
|
del self.log[REMOTE]['locked_in'][htlc_id] |
|
|
|
del self.log[REMOTE]['adds'][htlc_id] |
|
|
|
self.log[REMOTE]['next_htlc_id'] = max(self.log[REMOTE]['locked_in']) + 1 |
|
|
|
for log_action in ('settles', 'fails'): |
|
|
|
for htlc_id, ctns in list(self.log[LOCAL][log_action].items()): |
|
|
|
if ctns[LOCAL] > self.ctn_latest(LOCAL): |
|
|
|
del self.log[LOCAL][log_action][htlc_id] |
|
|
|
# fee updates |
|
|
|
for i, fee_update in enumerate(list(self.log[REMOTE]['fee_updates'])): |
|
|
|
if fee_update.ctns[LOCAL] > self.ctn_latest(LOCAL): |
|
|
|
del self.log[REMOTE]['fee_updates'][i] |
|
|
|
|
|
|
|
##### Queries re HTLCs: |
|
|
|
|
|
|
|
def htlcs_by_direction(self, subject: HTLCOwner, direction: Direction, |
|
|
|