core-lightning/lightningd
Vasil Dimov 66eca2ff3f lightningd: always broadcast the latest close tx
Before this patch we would only update `channel->last_tx` with the newly
proposed closure tx from the peer if the fee of the new one was lower.

In negotiations where we are at the higher end and the peer starts
lower, all peer's subsequent proposals will be higher than his initial
proposal and in this case we would never update `channel->last_tx`
and would wrongly broadcast his initial proposal at the end of the
negotiation.

Fixes https://github.com/ElementsProject/lightning/issues/3549

Changelog-Fixed: Always broadcast the latest close transaction at the end of the close fee negotiation, instead of sometimes broadcasting the peer's initial closing proposal.
2020-03-10 11:40:19 +10:30
..
test lightningd: make local htlc failures pass a wiremsg for errors, not a failcode. 2020-02-25 11:12:12 +10:30
.gitignore handshaked: remove. 2017-10-20 18:31:32 +02:00
bitcoind.c bitcoind: timeout if the Bitcoin plugin never completes the handshake 2020-03-05 15:06:38 -06:00
bitcoind.h lightningd/bitcoind: remove all bitcoin-cli specific code 2020-02-12 11:45:07 +10:30
chaintopology.c pytest: test Bitcoin plugin registration and the bcli plugin 2020-02-12 11:45:07 +10:30
chaintopology.h lightningd/bitcoind: use the Bitcoin plugin to send transactions 2020-02-12 11:45:07 +10:30
channel_control.c channeld: get the onionreply back from lightningd for failed htlcs. 2020-02-25 11:12:12 +10:30
channel_control.h channel control: break out separate method for canceling 2020-02-10 15:59:26 +10:30
channel_state.h wallet: Add a final CLOSED state to channels 2019-06-30 16:41:30 +09:30
channel.c lightingd: do a local short_channel_id lookup for forwarding. 2020-02-28 09:44:47 +10:30
channel.h lightingd: do a local short_channel_id lookup for forwarding. 2020-02-28 09:44:47 +10:30
closing_control.c lightningd: always broadcast the latest close tx 2020-03-10 11:40:19 +10:30
closing_control.h common/per_per_state: generalize lightningd/peer_comm Part 1 2019-06-04 01:29:39 +00:00
connect_control.c connectd: Pass the init_featurebits down to connectd and use in init 2020-02-11 13:53:31 +10:30
connect_control.h Use node_id everywhere for nodes. 2019-04-09 12:37:16 -07:00
gossip_control.c lightingd: do a local short_channel_id lookup for forwarding. 2020-02-28 09:44:47 +10:30
gossip_control.h gossipd: get fed the blockheight from lightningd when we know it. 2019-09-25 04:01:56 +00:00
gossip_msg.c wire: add fromwire_tal_arrn() helper. 2020-03-09 16:04:56 +01:00
gossip_msg.h common/features: only support a single feature bitset. 2019-10-11 02:52:04 +00:00
hsm_control.c lightningd/hsm_control.c: Implement getsharedsecret. 2020-02-28 14:45:50 +10:30
hsm_control.h Use node_id everywhere for nodes. 2019-04-09 12:37:16 -07:00
htlc_end.c lightningd: rename htlc_in field from failcode to badonion. 2020-02-25 11:12:12 +10:30
htlc_end.h lightningd: rename htlc_in field from failcode to badonion. 2020-02-25 11:12:12 +10:30
htlc_set.c lightningd: make local htlc failures pass a wiremsg for errors, not a failcode. 2020-02-25 11:12:12 +10:30
htlc_set.h lightningd: make local htlc failures pass a wiremsg for errors, not a failcode. 2020-02-25 11:12:12 +10:30
invoice.c plugins: support failure_message in invoice and htlc_accepted hooks. 2020-02-25 11:12:12 +10:30
invoice.h lightningd: sew in htlc set. 2019-12-12 15:03:53 +01:00
io_loop_with_timers.c plugins: don't crash if getmanifest times out. 2019-07-24 16:16:53 +02:00
io_loop_with_timers.h lightningd/io_loop_with_timers.c: Move mainloop to its own source file, have chaintopology use it. 2019-05-31 17:57:10 +02:00
json.c common: move json_stream helpers to common/json 2020-02-04 13:24:32 +10:30
json.h common: move json_stream helpers to common/json 2020-02-04 13:24:32 +10:30
jsonrpc.c common: tal_dup_talarr() helper. 2020-02-27 14:16:16 +10:30
jsonrpc.h common: move json_stream from lightningd/ to common/ 2020-02-04 13:24:32 +10:30
lightningd.c lightningd: use the async mechanism for channel_update access. 2020-02-28 09:44:47 +10:30
lightningd.h plugin: Do not forward plugin hook calls during shutdown 2020-02-27 09:21:44 +10:30
log_status.c lightningd: kill per-peer daemons if they claim a different peer id. 2019-11-18 04:50:22 +00:00
log_status.h lightningd: have logging include an optional node_id for each entry. 2019-11-18 04:50:22 +00:00
log.c log: print UNUSUAL messages before log initialization too. 2019-11-23 22:42:34 +00:00
log.h lightningd: use a simple array for less memory usage. 2019-11-18 04:50:22 +00:00
Makefile common: move json_stream from lightningd/ to common/ 2020-02-04 13:24:32 +10:30
memdump.c htlcs: Make sure htlc_sets is not erroneously flagged as a memleak 2019-12-12 22:16:03 +01:00
memdump.h lightningd: add code to search strmaps for memleak detection. 2019-02-07 20:33:50 +00:00
notification.c lightningd, openingd: remove active code inside assert(). 2020-02-18 10:21:29 +10:30
notification.h db: put scids in forwards even if we didn't actually send. 2020-02-12 22:27:57 -06:00
onchain_control.c lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
onchain_control.h onchaind: Replay stored channeltxs to restore onchaind state 2018-04-25 14:33:38 +02:00
opening_control.c plugin: Introduce plugin type to allow singleton and chaining 2020-02-11 15:57:22 +10:30
opening_control.h subd: Add a helper to get the current owning subd for a given peer 2020-01-28 23:50:52 +01:00
options.c lightningd/bitcoind: remove all bitcoin-cli specific code 2020-02-12 11:45:07 +10:30
options.h common: parse --allow-deprecated-apis extremely early. 2019-11-23 22:42:34 +00:00
pay.c lightningd: use the async mechanism for channel_update access. 2020-02-28 09:44:47 +10:30
pay.h Use dedicated type for error codes 2020-01-31 06:02:47 +00:00
peer_control.c lightingd: do a local short_channel_id lookup for forwarding. 2020-02-28 09:44:47 +10:30
peer_control.h peer: Add custommsg hook and wire it into channeld and openingd 2020-01-28 23:50:52 +01:00
peer_htlcs.c htlc: Return an invalid payload error if payload is invalid 2020-03-04 22:57:24 +01:00
peer_htlcs.h lightningd: use the async mechanism for channel_update access. 2020-02-28 09:44:47 +10:30
ping.c bolt: update to BOLT spec changes (extract format + type specifications) 2019-07-16 06:10:58 +00:00
ping.h ping: complete JSON RPC ping commands even if one ping gets no response. 2018-09-14 22:11:23 +02:00
plugin_control.c plugin: Actually wait the 20 seconds promised in the docs 2020-02-27 09:21:44 +10:30
plugin_control.h plugins: cleanup shared headers between dynamic and static plugins 2019-09-30 00:20:16 +00:00
plugin_hook.c cleanup: Remove current_plugin from plugin_hook_request 2020-02-27 09:21:44 +10:30
plugin_hook.h plugin: Multiple plugins can register a singl hook 2020-02-11 15:57:22 +10:30
plugin.c plugin: Cleanup a plugin as soon as its stdout closes 2020-02-27 09:21:44 +10:30
plugin.h chaintopology: check bitcoin plugin commands at startup 2020-02-12 11:45:07 +10:30
signmessage.c common/wireaddr: don't include lightningd/lightningd. 2020-02-27 14:16:16 +10:30
subd.c lightningd: Added --subdaemon command to allow alternate subdaemons. 2020-02-04 10:44:13 +10:30
subd.h lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
watch.c wallet: remove edgecase around transaction checks 2020-01-02 16:56:42 +01:00
watch.h lightningd: fix occasional missing txid detection. 2019-06-28 03:31:43 +00:00