#include #include #include #include #include #include #include #include #include #include #include #include # Begin! (passes gossipd-client fd) msgtype,channeld_init,1000 msgdata,channeld_init,chainparams,chainparams, msgdata,channeld_init,our_features,feature_set, 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,local_node_id,node_id, msgdata,channeld_init,remote_node_id,node_id, 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,reached_announce_depth,bool, 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,remote_ann_node_sig,?secp256k1_ecdsa_signature, msgdata,channeld_init,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature, msgdata,channeld_init,desired_type,channel_type, msgdata,channeld_init,dev_fast_gossip,bool, 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 # master->channeld funding hit new depth(funding locked if >= lock depth) # alias != NULL if zeroconf and short_channel_id == NULL # 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,alias_local,?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,blinding,?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 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 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 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 # 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, # 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, # 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, # 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 # This is NULL if option_static_remotekey. msgdata,channeld_fail_fallen_behind,remote_per_commitment_point,?pubkey, # When we receive announcement_signatures for channel announce msgtype,channeld_got_announcement,1017 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 # Channeld: tell gossipd to make channel_update to enable/disable. msgtype,channeld_local_channel_update,1013 msgdata,channeld_local_channel_update,enable,bool, # Channeld: tell gossipd about our channel_announcement msgtype,channeld_local_channel_announcement,1014 msgdata,channeld_local_channel_announcement,len,u16, msgdata,channeld_local_channel_announcement,cannounce,u8,len # Channeld: tell gossipd about this (as-yet) unannounced channel msgtype,channeld_local_private_channel,1015 msgdata,channeld_local_private_channel,capacity,amount_sat, msgdata,channeld_local_private_channel,len,u16, msgdata,channeld_local_private_channel,features,u8,len # 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,