SomberNight
62be1cc367
small clean-up re "extract preimage from on-chain htlc_tx"
...
related: #6122
6 years ago
ThomasV
d7b853f271
follow-up 8ba7e68064
6 years ago
ThomasV
c1b1638615
fix htlc forwarding:
...
- persist fail_htlc error messages
- do not rely on payment_hash in htlc_switch
6 years ago
ThomasV
8ba7e68064
fix #6122 : extract preimage from on-chain htlc_tx
6 years ago
ThomasV
123b8c1792
(minor) rename chan.sweep_htlc
6 years ago
SomberNight
f5eb91900a
use correct feerate when sweeping htlcs
...
fixes #6131
6 years ago
SomberNight
f52072e169
follow-up prev
...
we can't just test with a 1 msat htlc as that might be below htlc_minimum_msat
6 years ago
ThomasV
9224404108
Move callback manager out of Network class
6 years ago
SomberNight
12283d625b
(trivial) rename lnchannel.channel_states to ChannelState
6 years ago
SomberNight
8e8ab775eb
lnchannel: make AbstractChannel inherit ABC
...
and add some type annotations, clean up method signatures
6 years ago
ThomasV
e50f6d29ed
export channel backup from kivy gui
6 years ago
ThomasV
74517c88ad
do not use short_channel_id as state, use channel state for that.
...
display it as soon as the funding tx is mined.
6 years ago
ThomasV
8f41aeb783
Replace wallet backup with channel backups
...
- channels can be backed up individually
- backups are added to lnwatcher
- AbstractChannel ancestor class
6 years ago
ThomasV
55d0a9587e
move maybe_save_short_chan_id to lnchannel
6 years ago
ThomasV
aa32e31a3d
follow-up previous commit
6 years ago
ThomasV
06dfe1699c
LNWatcher: Distinguish between blockchain-triggered channel state
...
transitions, and actions taken as a result.
- state transitions are performed in lnchannel.update_onchain_state()
- peer actions are in LNWorker.on_channel_update()
6 years ago
ThomasV
5067166e1e
move should_channel_be_closed_due_to_expiring_htlcs into Channel class
6 years ago
SomberNight
3a73f6ee5c
lnmsg.decode_msg: dict values for numbers are int, instead of BE bytes
...
Will be useful for TLVs where it makes sense to do the conversion in lnmsg,
as it might be more complicated than just int.from_bytes().
6 years ago
SomberNight
4c10a830f3
lnmsg: rewrite LN msg encoding/decoding
6 years ago
SomberNight
79d57784c1
lnchannel: add more type hints
6 years ago
SomberNight
db84de5493
trivial: use "chunks()" for htlc_sigs in lnchannel
6 years ago
SomberNight
8ad6d5ddda
lnchannel: clean-up docstrings a bit
...
Removed lnd copyright as by now everything covered in this file
has been rewritten.
6 years ago
SomberNight
acb0d7ebac
lnchannel: better checks for "update_add_htlc"
...
I believe this now implements all the checks listed in BOLT-02 for
update_add_htlc, however, the BOLT is sometimes ambiguous,
and actually the checks listed there IMO are insufficient.
There are still some TODOs, in part because of the above.
6 years ago
SomberNight
7498271927
follow-up prev: htlc direction madness
...
Sometimes direction was relative sometimes absolute... ?!
No. Make it always relative (to subject).
6 years ago
SomberNight
5b7ce98ab2
lnchannel: fix included_htlcs
6 years ago
SomberNight
3ed6afce64
lnchannel: implement freezing channels (for receiving)
...
A bit weird, I know... :)
It allows for rebalancing our own channels! :P
6 years ago
SomberNight
5c8455d00b
lnchannel: when adding HTLCs, run checks for both directions
6 years ago
SomberNight
53c6fc8cf1
lnchannel: test for max htlc value (needs to be below protocol maximum)
6 years ago
SomberNight
777e350fae
lnchannel: partly fix available_to_spend
...
we were looking at inconsistent ctns
and we were looking at the wrong subject's ctx
all the FIXMEs and TODOs here will still warrant some attention.
(note that test_DesyncHTLCs was passing incorrectly:
the "assertRaises" was catching a different exception)
6 years ago
SomberNight
deb50e7ec3
lnchannel: implement "freezing" channels (for sending)
...
and expose it in Qt GUI
6 years ago
SomberNight
2cc76fbbbd
lnworker: fix type error re pending_payments, and impl malformed htlcs
...
In old code, in lnpeer.htlc_switch(), "error" in lnworker.pending_payments
had incorrect type.
TODO: we need tests for payment failures...
6 years ago
SomberNight
b524460fdf
lnpeer: implement basic handling of "update_fail_malformed_htlc"
6 years ago
SomberNight
ea0981ebeb
lnutil.UpdateAddHtlc: use attrs instead of old-style namedtuple
6 years ago
ThomasV
5bac2fea98
Qt: improve channel details window
6 years ago
ThomasV
fe2b40b83d
Fix #6021 : Do not transition channel state to CLOSED if tx is unconfirmed.
6 years ago
ThomasV
05a191cc6a
(minor) simplification
6 years ago
ThomasV
3c111471e9
Fix bug with save_funding_height, save_closing_height
...
(it would enter a state where only closing_height was saved)
6 years ago
SomberNight
5b23d5ee97
lnchannel/lnhtlc: speed up balance calculation for recent ctns
...
Move the balance calculation from lnchannel to lnhtlc.
Maintain a running balance in lnhtlc that is coupled with _maybe_active_htlc_ids
for practicality reasons.
6 years ago
SomberNight
ec7473789e
lnhtlc: speed-up methods for recent ctns
...
we maintain a set of interesting htlc_ids
6 years ago
ThomasV
888a6d726e
Propagate exceptions raise by force_close to the GUI.
...
Define 'try_force_closing' for cases where we do not
want exceptions to be raised.
6 years ago
ThomasV
15fb8c0415
allow transition from FORCE_CLOSING to REDEEMED. define REDEEM_AFTER_DOUBLE_SPENT_DELAY
6 years ago
ThomasV
28452e2d46
do not try to reestablish channel if state is FORCE_CLOSING
6 years ago
ThomasV
eaf4810220
(minor) fix typo
6 years ago
ThomasV
34e236c9b6
CLI: show channel reserves and unsettled balances. fixes #5817
6 years ago
SomberNight
fa0ef9c548
ln: store network addresses for channel counterparties in channels
...
So we can reconnect to them without relying on gossip db.
6 years ago
ThomasV
8f3fcdd1a8
Fix detection of payments.
...
1. In lnhtlc, sent_in_ctn and failed_in_ctn need to look at the
remote ctx, and they need to be called when we receive a revocation,
not when we send one.
2. In lnchannel, we use 3 lnworker callbacks:
- payment sent/payment failed (called when we receive a revocation)
- payment received (called when we send a revocation)
3. Make revoke_current_commitment return a single value.
The second value was only used in tests, there is no need
to bloat the code with that
6 years ago
ThomasV
b9eaba3e85
replace await_local/remote
6 years ago
ThomasV
cfc20845a2
lnworker: dissociate htlc forwarding and fulfillment
6 years ago
ThomasV
da67fda92a
HTLC switch:
...
- fulfills/fails/forwards HTLCs
- onion_packets are saved when update_add_htlc is received
6 years ago
ThomasV
34400c0710
Set channel state to OPENING as soon as we receive 'funding_signed',
...
instead of when the funding transaction has been broadcast, because
we have no reliable way to know when it will be broadcast.
6 years ago