core-lightning/common
Rusty Russell 391da2f440 lightningd: don't let them fundpsbt below emergency reserve.
This is the simple version which always tries to keep some sats if we
have an anchor channel.  Turns out that we need something more
sophisticated for multifundchannel, so that's next.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Changed: JSON-RPC: `withdraw` will refuse to spend funds below `min-emergency-msat` if we have any anchor channels (and `all` will be reduced appropriately).
Changelog-Changed: JSON-RPC: `fundpsbt` and `utxopsbt` will refuse to spend funds below `min-emergency-msat` if we have any anchor channels.
2023-06-29 11:28:47 -04:00
..
test common: add test to generate BOLT formatting vectors. 2023-06-15 15:05:42 +09:30
addr.c bitcoin/chainparams.h: Split BIP173 name into onchain and Lightning HRPs. 2021-12-14 11:21:35 +10:30
addr.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
amount.c common: Add multiplication primitives for amount_msat and amount_sat 2022-09-21 11:25:47 +02:00
amount.h common: Add multiplication primitives for amount_msat and amount_sat 2022-09-21 11:25:47 +02:00
autodata.c common: clean up autodata in common_shutdown(). 2021-11-17 10:51:48 +10:30
autodata.h common: clean up autodata in common_shutdown(). 2021-11-17 10:51:48 +10:30
base32.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
base32.h common/base32: make this a simple tal-wrapper around ccan/base32. 2018-05-10 02:28:44 +00:00
base64.c common: use ccan/base64 instead of libsodium. 2021-11-14 18:49:46 +01:00
base64.h wireaddr: clean up tor parsing. 2021-11-14 18:49:46 +01:00
bech32.c common: rename bech32_encode parameter 2023-05-27 15:06:31 +09:30
bech32.h common: rename bech32_encode parameter 2023-05-27 15:06:31 +09:30
bech32_util.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
bech32_util.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
bigsize.c check-includes: allow redundant "config.h" 2021-02-04 12:02:36 +10:30
bigsize.h Remove varint typedef for bigsize 2020-09-23 16:30:36 +09:30
billboard.c build: allow DEVELOPER builds with -Og and gcc 9.4.0 2022-09-19 10:18:55 +09:30
billboard.h channeld/dualopend/lightningd: use channel_ready everywhere. 2022-09-12 09:34:52 +09:30
bip32.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
bip32.h wire: move remaining bitcoin functions out to bitcoin/ files. 2020-05-18 14:51:12 +02:00
blindedpath.c Makefile: update to latest BOLT text. 2023-04-07 21:22:56 +09:30
blindedpath.h common/blindedpath: expose API at a lower level. 2022-11-09 15:08:03 +01:00
blindedpay.c Makefile: update to latest BOLT text. 2023-04-07 21:22:56 +09:30
blindedpay.h common: update to latest route-blinding spec. 2023-01-30 13:24:29 +10:30
blinding.c Changed external/libwally-core to test_build_fix 2022-04-12 15:17:52 +09:30
blinding.h common: add blinding helpers. 2020-04-04 16:08:49 +10:30
blockheight_states.c global: use tal_dup_or_null(). 2021-12-30 14:36:55 +10:30
blockheight_states.h liquidity-ads: persist channel blockheight states to disk 2021-07-20 13:28:38 -04:00
bolt11.c pay: don't require description for hashdesc invoices (i.e. undeprecate). 2023-06-22 13:23:21 +09:30
bolt11.h Makefile: bolt version b38156b9510c0562cf50f8758a64602cc0315c19 2023-04-07 21:22:56 +09:30
bolt11_json.c global: remove deprecated non-msat-named msat fields. 2023-03-18 15:55:49 +10:30
bolt11_json.h common/bolt11_json: extract bolt11->json code. 2021-01-09 14:34:35 +10:30
bolt12.c common: fix arm32 compile breakage. 2022-12-06 10:44:39 +01:00
bolt12.h build: don't generate experimental variants of wire files. 2023-05-23 09:34:08 +09:30
bolt12_merkle.c bolt12: update comments to match latest spec. 2022-11-09 15:08:03 +01:00
bolt12_merkle.h hsmd: don't use point32 for bolt12, but use pubkeys (though still always 02) 2022-10-26 11:29:06 +10:30
channel_config.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
channel_config.h lightningd: new option for htlc dust limit 2021-10-23 12:59:13 +02:00
channel_id.c common: generalize extract_channel_id(). 2021-12-30 09:50:40 +10:30
channel_id.h common: generalize extract_channel_id(). 2021-12-30 09:50:40 +10:30
channel_type.c common/channel_type: add zero-fee-anchor type. 2023-06-29 11:28:47 -04:00
channel_type.h common/channel_type: add zero-fee-anchor type. 2023-06-29 11:28:47 -04:00
close_tx.c hsmd: Add wallet index metadata to existing messages 2022-03-10 10:22:29 +10:30
close_tx.h hsmd: Add wallet index metadata to existing messages 2022-03-10 10:22:29 +10:30
closing_fee.h closingd: configurable closing fee negotiation step 2020-04-07 13:52:48 +09:30
coin_mvt.c bkpr: for zerconfs, we still wanna know you're opening a channel 2022-07-28 12:08:18 +09:30
coin_mvt.h bkpr: for zerconfs, we still wanna know you're opening a channel 2022-07-28 12:08:18 +09:30
configdir.c lightningd: annotate configuration settings which contain JSON literals. 2023-06-03 10:50:29 +09:30
configdir.h lightningd: switch parsing to common/configvar 2023-06-03 10:50:29 +09:30
configvar.c fix: build on alpine linux 2023-06-15 09:52:31 +09:30
configvar.h common: allow configvars to be marked dynamic. 2023-06-20 20:08:25 +09:30
crypto_state.h per_peer_state: remove struct crypto_state 2022-01-20 15:24:06 +10:30
cryptomsg.c common: make hdr parameter const 2023-06-23 13:12:42 +09:30
cryptomsg.h common: make hdr parameter const 2023-06-23 13:12:42 +09:30
daemon.c common: lookup function for symnames. 2023-04-10 09:41:56 +09:30
daemon.h common: lookup function for symnames. 2023-04-10 09:41:56 +09:30
daemon_conn.c common/daemon_conn: add function to read an fd. 2022-07-18 20:50:04 -05:00
daemon_conn.h common/daemon_conn: add function to read an fd. 2022-07-18 20:50:04 -05:00
decode_array.c Makefile: update to BOLTs without zlib. 2022-05-19 09:47:32 +09:30
decode_array.h Makefile: update to BOLTs without zlib. 2022-05-19 09:47:32 +09:30
derive_basepoints.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
derive_basepoints.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
descriptor_checksum.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
descriptor_checksum.h common: add a descriptor checksum computation module 2020-11-10 10:34:13 -06:00
dev_disconnect.c connectd: implement @ correctly. 2022-01-20 15:24:06 +10:30
dev_disconnect.h connectd: implement @ correctly. 2022-01-20 15:24:06 +10:30
dijkstra.c common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
dijkstra.h common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
ecdh.h common: generalize ecdh function. 2020-04-04 16:08:49 +10:30
ecdh_hsmd.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
ecdh_hsmd.h common: generalize ecdh function. 2020-04-04 16:08:49 +10:30
errcode.h jsonrpc: make error codes an enum. 2022-09-19 10:18:55 +09:30
features.c Makefile: update to latest BOLT text. 2023-04-07 21:22:56 +09:30
features.h Makefile: update to latest BOLT text. 2023-04-07 21:22:56 +09:30
fee_states.c global: use tal_dup_or_null(). 2021-12-30 14:36:55 +10:30
fee_states.h channeld: tweak function to allow testing for pending *uncommitted* changes. 2021-06-04 16:13:08 +09:30
fp16.c common: extract fp16 routines into their own file. 2021-02-04 12:02:36 +10:30
fp16.h common: extract fp16 routines into their own file. 2021-02-04 12:02:36 +10:30
gossip_constants.h Makefile: update bolts to 60cfb5972ad4bec4c49ee0f9e729fb3352fcdc6a. 2023-04-07 21:22:56 +09:30
gossip_store.c common/gossip_store: move subdaemon-only routines to connectd. 2023-01-30 15:15:41 -06:00
gossip_store.h typo fixes found by @niftynei 2023-01-30 15:15:41 -06:00
gossmap.c common/gossmap: don't memcpy NULL, 0, and don't add 0 to NULL pointer. 2023-04-05 06:12:24 +09:30
gossmap.h listincoming: add htlc_min_msat, public and peer_features fields. 2022-11-09 15:08:03 +01:00
hash_u5.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
hash_u5.h common: use tabs everywhere. 2020-02-05 14:19:12 +01:00
hmac.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
hmac.h common/sphinx: don't make copy to compute packet hmac. 2020-12-11 15:51:24 +01:00
hsm_encryption.c lightningd: expand exit codes for various failures. 2022-07-20 19:28:33 +09:30
hsm_encryption.h cli: make the command line more user friendly. 2022-03-24 09:53:38 +10:30
hsm_version.h hsmd: routine to sign HTLC tx merged with our own tx. 2023-06-29 11:28:47 -04:00
htlc.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
htlc_state.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
htlc_state.h Fix a-vs-an typos 2018-02-08 22:49:34 +01:00
htlc_trim.c global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
htlc_trim.h global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
htlc_tx.c global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
htlc_tx.h global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
htlc_wire.c channeld: don't calculate blinding shared secret, let lightningd do it. 2022-10-26 11:29:06 +10:30
htlc_wire.h channeld: don't calculate blinding shared secret, let lightningd do it. 2022-10-26 11:29:06 +10:30
initial_channel.c global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
initial_channel.h common: simple helpers to test for either anchor feature. 2023-06-29 11:28:47 -04:00
initial_commit_tx.c global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
initial_commit_tx.h global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
interactivetx.c build: remove --enable-experimental-features / EXPERIMENTAL_FEATURES 2023-05-23 09:34:08 +09:30
interactivetx.h Collaborative transaction building 2022-11-02 12:00:11 +01:00
invoice_path_id.c createinvoice: make a minimal blinded "path" in bolt12 invoice if none presented. 2022-11-09 15:08:03 +01:00
invoice_path_id.h createinvoice: make a minimal blinded "path" in bolt12 invoice if none presented. 2022-11-09 15:08:03 +01:00
iso4217.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
iso4217.h bolt12: update comments to match latest spec. 2022-11-09 15:08:03 +01:00
json_command.h common/json_filter: routine to turn "filter" JSON into a filter. 2022-11-09 20:25:58 +10:30
json_filter.c common/json_filter: routine to turn "filter" JSON into a filter. 2022-11-09 20:25:58 +10:30
json_filter.h common/json_filter: routine to turn "filter" JSON into a filter. 2022-11-09 20:25:58 +10:30
json_param.c keysend: Allow quoted numbers in extratlvs 2022-11-01 17:05:30 +01:00
json_param.h common: update comments documenting the use of param() 2023-01-04 15:13:42 +01:00
json_parse.c config: replace accept-htlc-tlv-types with accept-htlc-tlv-type 2023-06-03 10:50:29 +09:30
json_parse.h config: replace accept-htlc-tlv-types with accept-htlc-tlv-type 2023-06-03 10:50:29 +09:30
json_parse_simple.c common: add routine to get double from JSON. 2023-01-30 15:15:41 -06:00
json_parse_simple.h common: add routine to get double from JSON. 2023-01-30 15:15:41 -06:00
json_stream.c common: remove json_stream_log_suppress 2023-06-05 16:16:21 +02:00
json_stream.h common: remove json_stream_log_suppress 2023-06-05 16:16:21 +02:00
jsonrpc_errors.h lightningd: don't let them fundpsbt below emergency reserve. 2023-06-29 11:28:47 -04:00
key_derive.c lightningd: move bip32_pubkey here from common/, add hsm check. 2023-03-22 13:50:32 +10:30
key_derive.h lightningd: move bip32_pubkey here from common/, add hsm check. 2023-03-22 13:50:32 +10:30
keyset.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
keyset.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
lease_rates.c lease_rates: prepare for msats fields as raw numbers. 2022-06-21 06:52:35 +09:30
lease_rates.h lease_rates: prepare for msats fields as raw numbers. 2022-06-21 06:52:35 +09:30
Makefile common/configvar: routines to manage config settings. 2023-06-03 10:50:29 +09:30
memleak.c all: no longer need to call htable_clear to free htable contents. 2023-01-12 11:44:10 +10:30
memleak.h memleak: remove exclusions from memleak_start() 2022-09-19 11:34:42 +09:30
msg_queue.c msg_queue: don't allow magic MSG_PASS_FD message for peers. 2022-01-20 15:24:06 +10:30
msg_queue.h msg_queue: don't allow magic MSG_PASS_FD message for peers. 2022-01-20 15:24:06 +10:30
node_id.c Remove point32. 2022-10-26 11:29:06 +10:30
node_id.h common: expose node_id_hash functions. 2023-01-21 08:05:31 -06:00
onion_decode.c Makefile: update to latest BOLT text. 2023-04-07 21:22:56 +09:30
onion_decode.h common/onion: split into decode and encode routines. 2022-11-09 15:08:03 +01:00
onion_encode.c Makefile: update to latest BOLT text. 2023-04-07 21:22:56 +09:30
onion_encode.h Makefile: update bolts to 60cfb5972ad4bec4c49ee0f9e729fb3352fcdc6a. 2023-04-07 21:22:56 +09:30
onion_message_parse.c common: update to latest onion-message spec. 2023-01-30 13:24:29 +10:30
onion_message_parse.h common/onion_message_parse: generic routine for parsing onion messages. 2022-10-26 11:29:06 +10:30
onionreply.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
onionreply.h common: add struct onionreply 2020-01-23 16:17:42 +10:30
overflows.h overflows: helpers for integer assignment overflows. 2021-07-20 13:28:38 -04:00
peer_billboard.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
peer_billboard.h common: peer_billboard() helper for updating the billboard. 2018-02-23 18:02:00 +01:00
peer_failed.c dual-open: use tx-abort instead of warning/errors 2023-02-05 10:02:46 +01:00
peer_failed.h dual-open: use tx-abort instead of warning/errors 2023-02-05 10:02:46 +01:00
peer_io.c peer subds: ignore failed writes. 2022-01-20 15:24:06 +10:30
peer_io.h connectd: do nagle by packet type. 2022-01-20 15:24:06 +10:30
peer_status_wire.csv subdaemons: don't stream gossip_store at all. 2022-01-20 15:24:06 +10:30
penalty_base.c check-includes: allow redundant "config.h" 2021-02-04 12:02:36 +10:30
penalty_base.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
per_peer_state.c subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
per_peer_state.h subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
permute_tx.c Update libwally to 0.8.8, support PSBTv2 2023-03-23 16:10:55 +10:30
permute_tx.h common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
ping.c doc: big BOLT update to incorporate warnings language. 2022-04-02 09:40:18 +10:30
ping.h channeld: restore ping command, but only for channeld. 2021-10-10 15:32:57 +02:00
private_channel_announcement.c cleanup: remove unneeded includes in C files. 2021-09-17 09:43:22 +09:30
private_channel_announcement.h gossip_store: make private channels more similar to channel_announcement 2020-10-21 08:58:34 +10:30
psbt_internal.c Update libwally to 0.8.8, support PSBTv2 2023-03-23 16:10:55 +10:30
psbt_internal.h dual-funding: convert to runtime flag, --experimental-dual-fund 2021-03-25 20:05:11 +10:30
psbt_keypath.c Update libwally to 0.8.8, support PSBTv2 2023-03-23 16:10:55 +10:30
psbt_keypath.h hsmd: Add PSBT keypath utility functions 2022-03-10 10:22:29 +10:30
psbt_open.c Update libwally to 0.8.8, support PSBTv2 2023-03-23 16:10:55 +10:30
psbt_open.h Update libwally to 0.8.8, support PSBTv2 2023-03-23 16:10:55 +10:30
pseudorand.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
pseudorand.h common: expose pseudorand_double 2019-04-16 21:22:13 +00:00
random_select.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
random_select.h Apply @cdecker typo suggestions from code review 2020-08-28 10:56:50 +09:30
read_peer_msg.c doc: big BOLT update to incorporate warnings language. 2022-04-02 09:40:18 +10:30
read_peer_msg.h subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
route.c common/blindedpay: routines to construct a blinded payment. 2022-10-26 11:29:06 +10:30
route.h common/blindedpay: routines to construct a blinded payment. 2022-10-26 11:29:06 +10:30
scb_wire.csv staticbackup: don't use wireaddr_internal. 2023-06-01 09:28:39 +09:30
setup.c setup: make all htables use tal. 2023-01-12 11:44:10 +10:30
setup.h setup: create a common setup which will handle the wally-context 2020-05-19 13:35:42 +09:30
shutdown_scriptpubkey.c lightningd: only allow closing to native segwit 2022-12-13 08:28:12 +10:30
shutdown_scriptpubkey.h lightningd: only allow closing to native segwit 2022-12-13 08:28:12 +10:30
sphinx.c Makefile: update bolts a0bbe47b0278b4f152dbaa4f5fab2562413a217c 2023-04-07 21:22:56 +09:30
sphinx.h lightningd: --dev-onion-reply-length option. 2022-11-08 17:40:57 +01:00
status.c common: make sure we hand through peer for io logging. 2022-02-08 11:15:52 +10:30
status.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
status_levels.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
status_levels.h common: add routines for log level names. 2020-10-23 13:53:16 +10:30
status_wire.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
status_wire.csv cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
status_wire.h status: generate messages rather than marshal/unmarshal manually. 2018-02-08 19:07:12 +01:00
subdaemon.c connectd: do dev_disconnect logic. 2022-01-20 15:24:06 +10:30
subdaemon.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
timeout.c common: add routine for absolute timeouts (vs. relative). 2022-01-20 15:24:06 +10:30
timeout.h common: add routine for absolute timeouts (vs. relative). 2022-01-20 15:24:06 +10:30
tx_roles.c tx_roles: allow to be serialized btw processes 2023-02-07 21:03:36 -06:00
tx_roles.h tx_roles: allow to be serialized btw processes 2023-02-07 21:03:36 -06:00
type_to_string.c type_to_string: detect type failure in DEVELOPER mode. 2021-09-21 18:04:43 +02:00
type_to_string.h Remove point32. 2022-10-26 11:29:06 +10:30
utils.c memleak: handle libwally allocations better. 2022-03-21 10:19:50 +10:30
utils.h bitcoin: avoid adding to NULL 2023-06-05 16:16:21 +02:00
utxo.c global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
utxo.h global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
version.c lightningd: use OPT_EXITS for options which exit. 2023-06-03 10:50:29 +09:30
version.h lightningd: use OPT_EXITS for options which exit. 2023-06-03 10:50:29 +09:30
wallet.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
wallet.h wallet: remove unused TX_ANNOTATION type in transaction_annotations table. 2023-01-30 15:15:41 -06:00
wire_error.c dual-open: use tx-abort instead of warning/errors 2023-02-05 10:02:46 +01:00
wire_error.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
wireaddr.c lightningd: allow --bind=ws: 2023-06-01 09:28:39 +09:30
wireaddr.h common: add new internal type for websockets. 2023-06-01 09:28:39 +09:30