rgb-cln/lightningd
Rusty Russell c8c3294a23 json-invoice: add routeboost, warnings.
We split json_invoice(), as it now needs to round-trip to the gossipd,
and uniqueness checks need to happen *after* gossipd replies to avoid
a race.

For every candidate channel gossipd gives us, we check that it's in
state NORMAL (not shutting down, not still waiting for lockin), that
it's connected, and that it has capacity.  We then choose one with
probability weighted by excess capacity, so larger channels are more
likely.

As a side effect of this, we can tell if an invoice is unpayble (no
channels have sufficient incoming capacity) or difficuly (no *online*
channels have sufficient capacity), so we add those warnings.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-09-28 15:03:42 +02:00
..
test json-invoice: add routeboost, warnings. 2018-09-28 15:03:42 +02:00
.gitignore handshaked: remove. 2017-10-20 18:31:32 +02:00
Makefile hsmd: rename hsm_client_wire_csv to hsm_wire.csv 2018-09-20 09:49:39 +02:00
bitcoind.c common/utils.h: add tal_arr_expand helper. 2018-09-27 22:57:19 +02:00
bitcoind.h lightningd: allow more than one bitcoind request at once, run multiple queues. 2018-09-19 13:21:21 +02:00
chaintopology.c common/utils.h: add tal_arr_expand helper. 2018-09-27 22:57:19 +02:00
chaintopology.h chaintopology: remove redundant wallet pointer. 2018-09-03 05:01:40 +00:00
channel.c json-invoice: add routeboost, warnings. 2018-09-28 15:03:42 +02:00
channel.h json-invoice: add routeboost, warnings. 2018-09-28 15:03:42 +02:00
channel_control.c common/utils.h: add tal_arr_expand helper. 2018-09-27 22:57:19 +02:00
channel_control.h lightningd: peer_start_channeld always returns true; make it void. 2018-08-10 12:46:45 +02:00
channel_state.h lightningd: new state AWAITING_UNILATERAL. 2018-08-23 14:46:22 +02:00
closing_control.c feerate: include rough estimates of actual tx costs. 2018-08-25 00:33:12 +00:00
closing_control.h gossipd: drain fd instead of passing around gossip index. 2018-04-26 05:47:57 +00:00
connect_control.c Use localfeatures and globalfeatures consistently. 2018-09-28 04:14:28 +00:00
connect_control.h connectd: remove separate address hint message. 2018-08-09 19:44:27 +02:00
gossip_control.c gossipd: routine to get route_info for known incoming channels. 2018-09-28 15:03:42 +02:00
gossip_control.h connectd: wean off gossip_wire message types, use our own. 2018-07-25 02:13:52 +00:00
gossip_msg.c gossip_msg: marshal functions for struct route_info. 2018-09-28 15:03:42 +02:00
gossip_msg.h gossip_msg: marshal functions for struct route_info. 2018-09-28 15:03:42 +02:00
hsm_control.c lightningd: use hsm_get_client_fd() helper for global daemons too. 2018-09-20 09:49:39 +02:00
hsm_control.h lightningd: use hsm_get_client_fd() helper for global daemons too. 2018-09-20 09:49:39 +02:00
htlc_end.c memleak: create and use a generic htable helper and generic intmap helper. 2018-08-24 19:54:32 +02:00
htlc_end.h memleak: create and use a generic htable helper and generic intmap helper. 2018-08-24 19:54:32 +02:00
invoice.c json-invoice: add routeboost, warnings. 2018-09-28 15:03:42 +02:00
invoice.h invoices: Extensive reorganization of invoice system. 2018-01-16 13:03:54 +01:00
json.c json-rpc: Remove upper limit for percentage 2018-09-20 02:41:28 +00:00
json.h param: added json_tok_string 2018-09-03 00:40:27 +00:00
jsonrpc.c cli: help command now also prints usage 2018-09-25 15:11:45 +02:00
jsonrpc.h json-invoice: add routeboost, warnings. 2018-09-28 15:03:42 +02:00
jsonrpc_errors.h renamed error code 2018-07-29 16:27:38 +02:00
lightningd.c common/utils.h: add tal_arr_expand helper. 2018-09-27 22:57:19 +02:00
lightningd.h ping: complete JSON RPC ping commands even if one ping gets no response. 2018-09-14 22:11:23 +02:00
log.c add "io" to -log-level usage 2018-09-14 22:12:13 +02:00
log.h param: upgraded json_tok_loglevel 2018-08-20 01:02:25 +00:00
log_status.c Remove tal_len, use tal_count() or tal_bytelen(). 2018-07-30 11:31:17 +02:00
log_status.h status: add multiple levels of logging. 2018-02-07 00:46:49 +00:00
memdump.c param: call param() all the time 2018-09-25 15:11:45 +02:00
onchain_control.c hsmd: rename hsm_client_wire_csv to hsm_wire.csv 2018-09-20 09:49:39 +02:00
onchain_control.h onchaind: Replay stored channeltxs to restore onchaind state 2018-04-25 14:33:38 +02:00
opening_control.c hsmd: rename hsm_client_wire_csv to hsm_wire.csv 2018-09-20 09:49:39 +02:00
opening_control.h connectd: rely on the master to tell us to reconnect. 2018-08-09 19:44:27 +02:00
options.c common/utils.h: add tal_arr_expand helper. 2018-09-27 22:57:19 +02:00
options.h hsmd: drop newdir logic. 2018-05-05 17:55:10 +02:00
param.c common/utils.h: add tal_arr_expand helper. 2018-09-27 22:57:19 +02:00
param.h param: updated comments in the spirit of #1899 2018-09-03 00:40:27 +00:00
pay.c param: listpayments now uses json_tok_sha256 2018-09-03 00:40:27 +00:00
pay.h pay: Pass description to send_payment 2018-07-30 03:04:45 +00:00
payalgo.c param: added json_tok_string 2018-09-03 00:40:27 +00:00
payalgo.h payalgo: New file for pay command. 2018-02-16 13:08:29 +01:00
peer_control.c json: use bolt naming for features arrays in listnodes, listpeers. 2018-09-28 04:14:28 +00:00
peer_control.h Use localfeatures and globalfeatures consistently. 2018-09-28 04:14:28 +00:00
peer_htlcs.c common/utils.h: add tal_arr_expand helper. 2018-09-27 22:57:19 +02:00
peer_htlcs.h lightningd: move channel/peer/htlc load into own function. 2018-09-03 05:01:40 +00:00
ping.c ping: complete JSON RPC ping commands even if one ping gets no response. 2018-09-14 22:11:23 +02:00
ping.h ping: complete JSON RPC ping commands even if one ping gets no response. 2018-09-14 22:11:23 +02:00
subd.c lightningd: accept hsmstatus_client_bad_request messages (and log!) 2018-09-20 09:49:39 +02:00
subd.h lightningd: accept hsmstatus_client_bad_request messages (and log!) 2018-09-20 09:49:39 +02:00
watch.c txwatch: hand ld to callback, don't assume channel is non-NULL. 2018-08-21 00:48:02 +02:00
watch.h txwatch: hand ld to callback, don't assume channel is non-NULL. 2018-08-21 00:48:02 +02:00