core-lightning/channeld/channeld_wire.csv
Dusty Daemon 879d1191e8 splice: Bulk channel stfu and abort RPC
The ability to stfu channels in bulk is required to do complex multi channel operations. When stfu’ing in this manner, the available funds at the moment of stfu is returned to the user.

In order to cancel the stfu we also add a bulk tx_abort command.

Changelog-Added: `stfu_channels` and `abort_channels` are added for bulk multi-channel splice commands. These allow the user to pause (and resume) multiple channels in place.
2024-11-12 06:42:52 +10:30

365 lines
15 KiB
CSV

#include <bitcoin/psbt.h>
#include <bitcoin/tx.h>
#include <channeld/inflight.h>
#include <common/bip32.h>
#include <common/blockheight_states.h>
#include <common/cryptomsg.h>
#include <common/channel_config.h>
#include <common/channel_id.h>
#include <common/channel_type.h>
#include <common/derive_basepoints.h>
#include <common/features.h>
#include <common/fee_states.h>
#include <wire/peer_wire.h>
# Begin! (passes gossipd-client fd)
msgtype,channeld_init,1000
msgdata,channeld_init,chainparams,chainparams,
msgdata,channeld_init,our_features,feature_set,
msgdata,channeld_init,num_hsm_capabilities,u16,
msgdata,channeld_init,hsm_capabilities,u32,num_hsm_capabilities
msgdata,channeld_init,channel_id,channel_id,
msgdata,channeld_init,funding,bitcoin_outpoint,
msgdata,channeld_init,funding_satoshi,amount_sat,
msgdata,channeld_init,minimum_depth,u32,
msgdata,channeld_init,our_blockheight,u32,
msgdata,channeld_init,blockheight_states,height_states,
msgdata,channeld_init,lease_expiry,u32,
msgdata,channeld_init,our_config,channel_config,
msgdata,channeld_init,their_config,channel_config,
msgdata,channeld_init,fee_states,fee_states,
msgdata,channeld_init,feerate_min,u32,
msgdata,channeld_init,feerate_max,u32,
msgdata,channeld_init,feerate_penalty,u32,
msgdata,channeld_init,first_commit_sig,bitcoin_signature,
msgdata,channeld_init,remote_fundingkey,pubkey,
msgdata,channeld_init,remote_basepoints,basepoints,
msgdata,channeld_init,remote_per_commit,pubkey,
msgdata,channeld_init,old_remote_per_commit,pubkey,
msgdata,channeld_init,opener,enum side,
msgdata,channeld_init,local_msatoshi,amount_msat,
msgdata,channeld_init,our_basepoints,basepoints,
msgdata,channeld_init,our_funding_pubkey,pubkey,
msgdata,channeld_init,commit_msec,u32,
msgdata,channeld_init,last_was_revoke,bool,
msgdata,channeld_init,num_last_sent_commit,u16,
msgdata,channeld_init,last_sent_commit,changed_htlc,num_last_sent_commit
msgdata,channeld_init,next_index_local,u64,
msgdata,channeld_init,next_index_remote,u64,
msgdata,channeld_init,revocations_received,u64,
msgdata,channeld_init,next_htlc_id,u64,
msgdata,channeld_init,num_existing_htlcs,u16,
msgdata,channeld_init,htlcs,existing_htlc,num_existing_htlcs
msgdata,channeld_init,local_channel_ready,bool,
msgdata,channeld_init,remote_channel_ready,bool,
msgdata,channeld_init,funding_short_id,short_channel_id,
msgdata,channeld_init,reestablish,bool,
msgdata,channeld_init,send_shutdown,bool,
msgdata,channeld_init,remote_shutdown_received,bool,
msgdata,channeld_init,final_index,u32,
msgdata,channeld_init,final_ext_key,ext_key,
msgdata,channeld_init,final_scriptpubkey_len,u16,
msgdata,channeld_init,final_scriptpubkey,u8,final_scriptpubkey_len
msgdata,channeld_init,flags,u8,
msgdata,channeld_init,init_peer_pkt_len,u16,
msgdata,channeld_init,init_peer_pkt,u8,init_peer_pkt_len
msgdata,channeld_init,last_remote_secret,secret,
msgdata,channeld_init,flen,u16,
msgdata,channeld_init,their_features,u8,flen
msgdata,channeld_init,upfront_shutdown_script_len,u16,
msgdata,channeld_init,upfront_shutdown_script,u8,upfront_shutdown_script_len
msgdata,channeld_init,desired_type,channel_type,
msgdata,channeld_init,dev_disable_commit,?u32,
msgdata,channeld_init,num_penalty_bases,u32,
msgdata,channeld_init,pbases,penalty_base,num_penalty_bases
msgdata,channeld_init,reestablish_only,bool,
msgdata,channeld_init,experimental_upgrade,bool,
msgdata,channeld_init,num_inflights,u16,
msgdata,channeld_init,inflights,inflight,num_inflights
msgdata,channeld_init,scid_alias,short_channel_id,
# channeld->lightningd: successfully negotated reestablishment.
msgtype,channeld_reestablished,1101
# master->channeld funding hit new depth(funding locked if >= lock depth)
# short_channel_id != NULL once we have 3+ confirmations
msgtype,channeld_funding_depth,1002
msgdata,channeld_funding_depth,short_channel_id,?short_channel_id,
msgdata,channeld_funding_depth,depth,u32,
msgdata,channeld_funding_depth,splicing,bool,
msgdata,channeld_funding_depth,txid,bitcoin_txid,
# Tell channel to offer this htlc
msgtype,channeld_offer_htlc,1004
msgdata,channeld_offer_htlc,amount_msat,amount_msat,
msgdata,channeld_offer_htlc,cltv_expiry,u32,
msgdata,channeld_offer_htlc,payment_hash,sha256,
msgdata,channeld_offer_htlc,onion_routing_packet,u8,1366
msgdata,channeld_offer_htlc,path_key,?pubkey,
# Reply; synchronous since IDs have to increment.
msgtype,channeld_offer_htlc_reply,1104
msgdata,channeld_offer_htlc_reply,id,u64,
# Empty failure message means success.
msgdata,channeld_offer_htlc_reply,len,u16,
msgdata,channeld_offer_htlc_reply,failuremsg,u8,len
msgdata,channeld_offer_htlc_reply,failurestr,wirestring,
# Main daemon found out the preimage for an HTLC
#include <bitcoin/preimage.h>
msgtype,channeld_fulfill_htlc,1005
msgdata,channeld_fulfill_htlc,fulfilled_htlc,fulfilled_htlc,
# Main daemon says HTLC failed
msgtype,channeld_fail_htlc,1006
msgdata,channeld_fail_htlc,failed_htlc,failed_htlc,
# When we receive channel_ready.
msgtype,channeld_got_channel_ready,1019
msgdata,channeld_got_channel_ready,next_per_commit_point,pubkey,
msgdata,channeld_got_channel_ready,alias,?short_channel_id,
# When we receive funding_locked.
msgtype,channeld_got_splice_locked,1119
msgdata,channeld_got_splice_locked,funding_sats,amount_sat,
msgdata,channeld_got_splice_locked,splice_amnt,s64,
msgdata,channeld_got_splice_locked,locked_txid,bitcoin_txid,
#include <common/penalty_base.h>
subtype,local_anchor_info
subtypedata,local_anchor_info,commitment_weight,u32,
subtypedata,local_anchor_info,commitment_fee,amount_sat,
subtypedata,local_anchor_info,anchor_point,bitcoin_outpoint,
# lightningd needs to track our anchor outputs on remote txs.
# This includes splices, so there could be more than one!
msgtype,channeld_local_anchor_info,1003
msgdata,channeld_local_anchor_info,remote_commitnum,u64,
msgdata,channeld_local_anchor_info,num_anchors,u16,
msgdata,channeld_local_anchor_info,anchors,local_anchor_info,num_anchors
# When we send a commitment_signed message, tell master.
msgtype,channeld_sending_commitsig,1020
msgdata,channeld_sending_commitsig,commitnum,u64,
msgdata,channeld_sending_commitsig,pbase,?penalty_base,
msgdata,channeld_sending_commitsig,fee_states,fee_states,
msgdata,channeld_sending_commitsig,blockheight_states,height_states,
# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
msgdata,channeld_sending_commitsig,num_changed,u16,
msgdata,channeld_sending_commitsig,changed,changed_htlc,num_changed
# Wait for reply, to make sure it's on disk before we send commit.
msgtype,channeld_sending_commitsig_reply,1120
# When we have a commitment_signed message, tell master to remember.
msgtype,channeld_got_commitsig,1021
msgdata,channeld_got_commitsig,commitnum,u64,
msgdata,channeld_got_commitsig,fee_states,fee_states,
msgdata,channeld_got_commitsig,blockheight_states,height_states,
msgdata,channeld_got_commitsig,signature,bitcoin_signature,
msgdata,channeld_got_commitsig,num_htlcs,u16,
msgdata,channeld_got_commitsig,htlc_signature,bitcoin_signature,num_htlcs
# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
msgdata,channeld_got_commitsig,num_added,u16,
msgdata,channeld_got_commitsig,added,added_htlc,num_added
# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
msgdata,channeld_got_commitsig,num_fulfilled,u16,
msgdata,channeld_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled
msgdata,channeld_got_commitsig,num_failed,u16,
msgdata,channeld_got_commitsig,failed,failed_htlc,num_failed
# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
msgdata,channeld_got_commitsig,num_changed,u16,
msgdata,channeld_got_commitsig,changed,changed_htlc,num_changed
msgdata,channeld_got_commitsig,tx,bitcoin_tx,
# Inflight splice commitments
msgdata,channeld_got_commitsig,num_inflight_commitsigs,u16,
msgdata,channeld_got_commitsig,inflight_commitsigs,commitsig,num_inflight_commitsigs
subtype,commitsig
subtypedata,commitsig,tx,bitcoin_tx,
subtypedata,commitsig,commit_signature,bitcoin_signature,
subtypedata,commitsig,num_htlcs,u16,
subtypedata,commitsig,htlc_signatures,bitcoin_signature,num_htlcs
# Wait for reply, to make sure it's on disk before we send revocation.
msgtype,channeld_got_commitsig_reply,1121
#include <common/htlc_wire.h>
msgtype,channeld_got_revoke,1022
msgdata,channeld_got_revoke,revokenum,u64,
msgdata,channeld_got_revoke,per_commitment_secret,secret,
msgdata,channeld_got_revoke,next_per_commit_point,pubkey,
# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
msgdata,channeld_got_revoke,fee_states,fee_states,
msgdata,channeld_got_revoke,blockheight_states,height_states,
msgdata,channeld_got_revoke,num_changed,u16,
msgdata,channeld_got_revoke,changed,changed_htlc,num_changed
msgdata,channeld_got_revoke,pbase,?penalty_base,
msgdata,channeld_got_revoke,penalty_tx,?bitcoin_tx,
# Wait for reply, to make sure it's on disk before we continue
# (eg. if we sent another commitment_signed, that would implicitly ack).
msgtype,channeld_got_revoke_reply,1122
#include <wally_bip32.h>
# master->channeld: hello, I'd like to start a channel splice open
msgtype,channeld_splice_init,7204
msgdata,channeld_splice_init,psbt,wally_psbt,
msgdata,channeld_splice_init,relative_amount,s64,
msgdata,channeld_splice_init,feerate_per_kw,u32,
msgdata,channeld_splice_init,force_feerate,bool,
msgdata,channeld_splice_init,skip_stfu,bool,
# channeld->master: hello, I started a channel splice open
msgtype,channeld_splice_confirmed_init,7205
msgdata,channeld_splice_confirmed_init,psbt,wally_psbt,
# master->channeld: Update an active splice
msgtype,channeld_splice_update,7206
msgdata,channeld_splice_update,psbt,wally_psbt,
# channeld->master: Splice update complete
msgtype,channeld_splice_confirmed_update,7207
msgdata,channeld_splice_confirmed_update,psbt,wally_psbt,
msgdata,channeld_splice_confirmed_update,commitments_secured,bool,
msgdata,channeld_splice_confirmed_update,signatures_secured,bool,
# channeld->master: Lookup a transaction
msgtype,channeld_splice_lookup_tx,7208
msgdata,channeld_splice_lookup_tx,txid,bitcoin_txid,
# master->channeld: Retrieved transaction
msgtype,channeld_splice_lookup_tx_result,7209
msgdata,channeld_splice_lookup_tx_result,tx,bitcoin_tx,
# master->channeld: User has signed psbt and it's ready to complete
msgtype,channeld_splice_signed,7212
msgdata,channeld_splice_signed,psbt,wally_psbt,
msgdata,channeld_splice_signed,force_sign_first,bool,
# channeld->master: Signed psbt is completed
msgtype,channeld_splice_confirmed_signed,7213
msgdata,channeld_splice_confirmed_signed,tx,bitcoin_tx,
msgdata,channeld_splice_confirmed_signed,output_index,u32,
# channeld->master: Splice signatures are about to be sent
msgtype,channeld_splice_sending_sigs,7214
msgdata,channeld_splice_sending_sigs,tx,bitcoin_txid,
# channeld->master: A feerate error has occured
msgtype,channeld_splice_feerate_error,7215
msgdata,channeld_splice_feerate_error,fee,amount_msat,
msgdata,channeld_splice_feerate_error,too_high,bool,
# channeld->master: Add an inflight to the DB
msgtype,channeld_add_inflight,7216
msgdata,channeld_add_inflight,tx_id,bitcoin_txid,
msgdata,channeld_add_inflight,tx_outnum,u32,
msgdata,channeld_add_inflight,feerate,u32,
msgdata,channeld_add_inflight,satoshis,amount_sat,
msgdata,channeld_add_inflight,splice_amount,s64,
msgdata,channeld_add_inflight,psbt,wally_psbt,
msgdata,channeld_add_inflight,i_am_initiator,bool,
msgdata,channeld_add_inflight,force_sign_first,bool,
# master->channeld: Inflight saved successfully
msgtype,channeld_got_inflight,7217
# channeld->master: Update inflight with sigs
msgtype,channeld_update_inflight,7219
msgdata,channeld_update_inflight,psbt,wally_psbt,
msgdata,channeld_update_inflight,last_tx,?bitcoin_tx,
msgdata,channeld_update_inflight,last_sig,?bitcoin_signature,
# channeld->master: A funding error has occured
msgtype,channeld_splice_funding_error,7220
msgdata,channeld_splice_funding_error,funding,amount_msat,
msgdata,channeld_splice_funding_error,req_funding,amount_msat,
msgdata,channeld_splice_funding_error,opener_error,bool,
# channeld->master: A splice state error has occured
msgtype,channeld_splice_state_error,7221
msgdata,channeld_splice_state_error,state_error,wirestring,
# channeld->master: Peer rejected our splice
msgtype,channeld_splice_abort,7223
msgdata,channeld_splice_abort,did_i_initiate,bool,
msgdata,channeld_splice_abort,inflight_outpoint,?bitcoin_outpoint,
msgdata,channeld_splice_abort,reason,?wirestring,
# master->channeld: Please enter stfu mode
msgtype,channeld_stfu,7224
# channeld->master: Entered stfu result
msgtype,channeld_confirmed_stfu,7225
msgdata,channeld_confirmed_stfu,available_funds,amount_msat,
# master->channeld: Please enter perform tx_abort
msgtype,channeld_abort,7226
# Tell peer to shut down channel.
msgtype,channeld_send_shutdown,1023
msgdata,channeld_send_shutdown,final_index,?u32,
msgdata,channeld_send_shutdown,final_ext_key,?ext_key,
msgdata,channeld_send_shutdown,shutdown_len,u16,
msgdata,channeld_send_shutdown,shutdown_scriptpubkey,u8,shutdown_len
msgdata,channeld_send_shutdown,wrong_funding,?bitcoin_outpoint,
# Peer told us that channel is shutting down
msgtype,channeld_got_shutdown,1024
msgdata,channeld_got_shutdown,scriptpubkey_len,u16,
msgdata,channeld_got_shutdown,scriptpubkey,u8,scriptpubkey_len
msgdata,channeld_got_shutdown,wrong_funding,?bitcoin_outpoint,
# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
msgtype,channeld_shutdown_complete,1025
# Re-enable commit timer.
msgtype,channeld_dev_reenable_commit,1026
msgtype,channeld_dev_reenable_commit_reply,1126,
msgtype,channeld_feerates,1027
msgdata,channeld_feerates,feerate,u32,
msgdata,channeld_feerates,min_feerate,u32,
msgdata,channeld_feerates,max_feerate,u32,
msgdata,channeld_feerates,penalty_feerate,u32,
# master -> channeld: do you have a memleak?
msgtype,channeld_dev_memleak,1033
msgtype,channeld_dev_memleak_reply,1133
msgdata,channeld_dev_memleak_reply,leak,bool,
# Peer presented proof it was from the future.
msgtype,channeld_fail_fallen_behind,1028
# When we receive announcement_signatures for channel announce
msgtype,channeld_got_announcement,1017
msgdata,channeld_got_announcement,scid,short_channel_id,
msgdata,channeld_got_announcement,remote_ann_node_sig,secp256k1_ecdsa_signature,
msgdata,channeld_got_announcement,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature,
# Ask channeld to send a error message. Used in forgetting channel case.
msgtype,channeld_send_error,1008
msgdata,channeld_send_error,reason,wirestring,
# Tell master channeld has sent the error message.
msgtype,channeld_send_error_reply,1108
# Ask channeld to quiesce.
msgtype,channeld_dev_quiesce,1009
msgtype,channeld_dev_quiesce_reply,1109
# Tell master we're upgrading the commitment tx.
msgtype,channeld_upgraded,1011
msgdata,channeld_upgraded,new_type,channel_type,
# Tell peer about our latest and greatest blockheight.
msgtype,channeld_blockheight,1012
msgdata,channeld_blockheight,blockheight,u32,
# Tell channeld about peer's shachain seed.
msgtype,channeld_dev_peer_shachain,1013
msgdata,channeld_dev_peer_shachain,seed,sha256,