2017-08-28 18:05:01 +02:00
|
|
|
#include <common/cryptomsg.h>
|
|
|
|
#include <common/channel_config.h>
|
2018-07-09 13:17:59 +02:00
|
|
|
#include <common/derive_basepoints.h>
|
2019-06-03 20:11:25 +02:00
|
|
|
#include <common/per_peer_state.h>
|
2017-03-07 02:26:12 +01:00
|
|
|
|
2017-06-20 07:55:03 +02:00
|
|
|
# Begin! (passes gossipd-client fd)
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_init,1000
|
|
|
|
msgdata,channel_init,chain_hash,bitcoin_blkid,
|
|
|
|
msgdata,channel_init,funding_txid,bitcoin_txid,
|
|
|
|
msgdata,channel_init,funding_txout,u16,
|
|
|
|
msgdata,channel_init,funding_satoshi,amount_sat,
|
|
|
|
msgdata,channel_init,minimum_depth,u32,
|
|
|
|
msgdata,channel_init,our_config,channel_config,
|
|
|
|
msgdata,channel_init,their_config,channel_config,
|
|
|
|
# FIXME: Fix generate-wire.py to allow NUM_SIDES*u32 here.,
|
|
|
|
msgdata,channel_init,feerate_per_kw,u32,2
|
|
|
|
msgdata,channel_init,feerate_min,u32,
|
|
|
|
msgdata,channel_init,feerate_max,u32,
|
|
|
|
msgdata,channel_init,first_commit_sig,bitcoin_signature,
|
|
|
|
msgdata,channel_init,per_peer_state,per_peer_state,
|
|
|
|
msgdata,channel_init,remote_fundingkey,pubkey,
|
|
|
|
msgdata,channel_init,remote_basepoints,basepoints,
|
|
|
|
msgdata,channel_init,remote_per_commit,pubkey,
|
|
|
|
msgdata,channel_init,old_remote_per_commit,pubkey,
|
|
|
|
msgdata,channel_init,funder,e:side,
|
|
|
|
msgdata,channel_init,fee_base,u32,
|
|
|
|
msgdata,channel_init,fee_proportional,u32,
|
|
|
|
msgdata,channel_init,local_msatoshi,amount_msat,
|
|
|
|
msgdata,channel_init,our_basepoints,basepoints,
|
|
|
|
msgdata,channel_init,our_funding_pubkey,pubkey,
|
|
|
|
msgdata,channel_init,local_node_id,node_id,
|
|
|
|
msgdata,channel_init,remote_node_id,node_id,
|
|
|
|
msgdata,channel_init,commit_msec,u32,
|
|
|
|
msgdata,channel_init,cltv_delta,u16,
|
|
|
|
msgdata,channel_init,last_was_revoke,bool,
|
|
|
|
msgdata,channel_init,num_last_sent_commit,u16,
|
|
|
|
msgdata,channel_init,last_sent_commit,changed_htlc,num_last_sent_commit
|
|
|
|
msgdata,channel_init,next_index_local,u64,
|
|
|
|
msgdata,channel_init,next_index_remote,u64,
|
|
|
|
msgdata,channel_init,revocations_received,u64,
|
|
|
|
msgdata,channel_init,next_htlc_id,u64,
|
|
|
|
msgdata,channel_init,num_htlcs,u16,
|
|
|
|
msgdata,channel_init,htlcs,added_htlc,num_htlcs
|
|
|
|
msgdata,channel_init,htlc_states,e:htlc_state,num_htlcs
|
|
|
|
msgdata,channel_init,num_fulfilled,u16,
|
|
|
|
msgdata,channel_init,fulfilled,fulfilled_htlc,num_fulfilled
|
|
|
|
msgdata,channel_init,fulfilled_sides,e:side,num_fulfilled
|
|
|
|
msgdata,channel_init,num_failed,u16,
|
|
|
|
msgdata,channel_init,failed,failed_htlc,num_failed
|
|
|
|
msgdata,channel_init,failed_sides,e:side,num_failed
|
|
|
|
msgdata,channel_init,local_funding_locked,bool,
|
|
|
|
msgdata,channel_init,remote_funding_locked,bool,
|
|
|
|
msgdata,channel_init,funding_short_id,short_channel_id,
|
|
|
|
msgdata,channel_init,reestablish,bool,
|
|
|
|
msgdata,channel_init,send_shutdown,bool,
|
|
|
|
msgdata,channel_init,remote_shutdown_received,bool,
|
|
|
|
msgdata,channel_init,final_scriptpubkey_len,u16,
|
|
|
|
msgdata,channel_init,final_scriptpubkey,u8,final_scriptpubkey_len
|
|
|
|
msgdata,channel_init,flags,u8,
|
|
|
|
msgdata,channel_init,init_peer_pkt_len,u16,
|
|
|
|
msgdata,channel_init,init_peer_pkt,u8,init_peer_pkt_len
|
|
|
|
msgdata,channel_init,reached_announce_depth,bool,
|
|
|
|
msgdata,channel_init,last_remote_secret,secret,
|
|
|
|
msgdata,channel_init,lflen,u16,
|
|
|
|
msgdata,channel_init,localfeatures,u8,lflen
|
|
|
|
msgdata,channel_init,upfront_shutdown_script_len,u16,
|
|
|
|
msgdata,channel_init,upfront_shutdown_script,u8,upfront_shutdown_script_len
|
|
|
|
msgdata,channel_init,remote_ann_node_sig,?secp256k1_ecdsa_signature,
|
|
|
|
msgdata,channel_init,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature,
|
2017-03-07 02:26:12 +01:00
|
|
|
|
2019-02-26 17:57:19 +01:00
|
|
|
# master->channeld funding hit new depth(funding locked if >= lock depth)
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_funding_depth,1002
|
|
|
|
msgdata,channel_funding_depth,short_channel_id,?short_channel_id,
|
|
|
|
msgdata,channel_funding_depth,depth,u32,
|
2017-03-29 13:01:15 +02:00
|
|
|
|
|
|
|
# Tell channel to offer this htlc
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_offer_htlc,1004
|
|
|
|
msgdata,channel_offer_htlc,amount_msat,amount_msat,
|
|
|
|
msgdata,channel_offer_htlc,cltv_expiry,u32,
|
|
|
|
msgdata,channel_offer_htlc,payment_hash,sha256,
|
|
|
|
msgdata,channel_offer_htlc,onion_routing_packet,u8,1366
|
2017-03-29 13:01:15 +02:00
|
|
|
|
|
|
|
# Reply; synchronous since IDs have to increment.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_offer_htlc_reply,1104
|
|
|
|
msgdata,channel_offer_htlc_reply,id,u64,
|
|
|
|
# Zero failure code means success.,
|
|
|
|
msgdata,channel_offer_htlc_reply,failure_code,u16,
|
|
|
|
msgdata,channel_offer_htlc_reply,failurestrlen,u16,
|
|
|
|
msgdata,channel_offer_htlc_reply,failurestr,u8,failurestrlen
|
2017-03-29 13:01:15 +02:00
|
|
|
|
2018-02-08 22:43:01 +01:00
|
|
|
# Main daemon found out the preimage for an HTLC
|
2017-03-29 13:01:15 +02:00
|
|
|
#include <bitcoin/preimage.h>
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_fulfill_htlc,1005
|
|
|
|
msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc,
|
2017-03-29 13:01:15 +02:00
|
|
|
|
|
|
|
# Main daemon says HTLC failed
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_fail_htlc,1006
|
|
|
|
msgdata,channel_fail_htlc,failed_htlc,failed_htlc,
|
2017-03-29 13:01:15 +02:00
|
|
|
|
2017-06-20 07:55:03 +02:00
|
|
|
# When we receive funding_locked.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_got_funding_locked,1019
|
|
|
|
msgdata,channel_got_funding_locked,next_per_commit_point,pubkey,
|
2017-06-20 07:55:03 +02:00
|
|
|
|
2017-06-20 07:50:03 +02:00
|
|
|
# When we send a commitment_signed message, tell master.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_sending_commitsig,1020
|
|
|
|
msgdata,channel_sending_commitsig,commitnum,u64,
|
|
|
|
msgdata,channel_sending_commitsig,feerate,u32,
|
2017-06-20 07:50:03 +02:00
|
|
|
# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
|
2019-07-24 00:51:11 +02:00
|
|
|
msgdata,channel_sending_commitsig,num_changed,u16,
|
|
|
|
msgdata,channel_sending_commitsig,changed,changed_htlc,num_changed
|
|
|
|
msgdata,channel_sending_commitsig,commit_sig,bitcoin_signature,
|
|
|
|
msgdata,channel_sending_commitsig,num_htlc_sigs,u16,
|
|
|
|
msgdata,channel_sending_commitsig,htlc_sigs,secp256k1_ecdsa_signature,num_htlc_sigs
|
2017-06-20 07:50:03 +02:00
|
|
|
|
|
|
|
# Wait for reply, to make sure it's on disk before we send commit.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_sending_commitsig_reply,1120
|
2017-06-20 07:50:03 +02:00
|
|
|
|
|
|
|
# When we have a commitment_signed message, tell master to remember.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_got_commitsig,1021
|
|
|
|
msgdata,channel_got_commitsig,commitnum,u64,
|
|
|
|
msgdata,channel_got_commitsig,feerate,u32,
|
|
|
|
msgdata,channel_got_commitsig,signature,bitcoin_signature,
|
|
|
|
msgdata,channel_got_commitsig,num_htlcs,u16,
|
|
|
|
msgdata,channel_got_commitsig,htlc_signature,secp256k1_ecdsa_signature,num_htlcs
|
2017-06-20 07:50:03 +02:00
|
|
|
# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgdata,channel_got_commitsig,num_added,u16,
|
|
|
|
msgdata,channel_got_commitsig,added,added_htlc,num_added
|
|
|
|
msgdata,channel_got_commitsig,shared_secret,secret,num_added
|
2017-06-20 07:50:03 +02:00
|
|
|
# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgdata,channel_got_commitsig,num_fulfilled,u16,
|
|
|
|
msgdata,channel_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled
|
|
|
|
msgdata,channel_got_commitsig,num_failed,u16,
|
|
|
|
msgdata,channel_got_commitsig,failed,failed_htlc,num_failed
|
2017-06-20 07:50:03 +02:00
|
|
|
# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
|
2019-07-24 00:51:11 +02:00
|
|
|
msgdata,channel_got_commitsig,num_changed,u16,
|
|
|
|
msgdata,channel_got_commitsig,changed,changed_htlc,num_changed
|
|
|
|
msgdata,channel_got_commitsig,tx,bitcoin_tx,
|
2017-06-20 07:50:03 +02:00
|
|
|
|
|
|
|
# Wait for reply, to make sure it's on disk before we send revocation.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_got_commitsig_reply,1121
|
2017-06-20 07:50:03 +02:00
|
|
|
|
2017-08-28 18:05:01 +02:00
|
|
|
#include <common/htlc_wire.h>
|
2017-06-20 07:50:03 +02:00
|
|
|
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_got_revoke,1022
|
|
|
|
msgdata,channel_got_revoke,revokenum,u64,
|
|
|
|
msgdata,channel_got_revoke,per_commitment_secret,secret,
|
|
|
|
msgdata,channel_got_revoke,next_per_commit_point,pubkey,
|
2017-06-20 07:54:03 +02:00
|
|
|
# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
|
2019-07-24 00:51:11 +02:00
|
|
|
msgdata,channel_got_revoke,feerate,u32,
|
|
|
|
msgdata,channel_got_revoke,num_changed,u16,
|
|
|
|
msgdata,channel_got_revoke,changed,changed_htlc,num_changed
|
2017-06-20 07:50:03 +02:00
|
|
|
# Wait for reply, to make sure it's on disk before we continue
|
|
|
|
# (eg. if we sent another commitment_signed, that would implicitly ack).
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_got_revoke_reply,1122
|
2017-06-26 03:16:43 +02:00
|
|
|
|
2018-03-07 01:06:07 +01:00
|
|
|
# Tell peer to shut down channel.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_send_shutdown,1023
|
2017-06-26 03:16:43 +02:00
|
|
|
|
|
|
|
# Peer told us that channel is shutting down
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_got_shutdown,1024
|
|
|
|
msgdata,channel_got_shutdown,scriptpubkey_len,u16,
|
|
|
|
msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len
|
2017-07-04 02:47:32 +02:00
|
|
|
|
|
|
|
# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_shutdown_complete,1025
|
|
|
|
msgdata,channel_shutdown_complete,per_peer_state,per_peer_state,
|
2017-09-26 06:57:31 +02:00
|
|
|
|
|
|
|
# Re-enable commit timer.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_dev_reenable_commit,1026
|
|
|
|
msgtype,channel_dev_reenable_commit_reply,1126,
|
2017-11-21 06:26:59 +01:00
|
|
|
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_feerates,1027
|
|
|
|
msgdata,channel_feerates,feerate,u32,
|
|
|
|
msgdata,channel_feerates,min_feerate,u32,
|
|
|
|
msgdata,channel_feerates,max_feerate,u32,
|
2018-08-17 07:06:35 +02:00
|
|
|
|
2018-11-22 03:17:29 +01:00
|
|
|
# master -> channeld: do you have a memleak?
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_dev_memleak,1033
|
2018-11-22 03:17:29 +01:00
|
|
|
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_dev_memleak_reply,1133
|
|
|
|
msgdata,channel_dev_memleak_reply,leak,bool,
|
2018-11-22 03:17:29 +01:00
|
|
|
|
2018-08-17 07:06:35 +02:00
|
|
|
# Peer presented proof it was from the future.
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_fail_fallen_behind,1028
|
|
|
|
msgdata,channel_fail_fallen_behind,remote_per_commitment_point,pubkey,
|
2018-08-17 07:06:35 +02:00
|
|
|
|
2019-03-09 21:29:39 +01:00
|
|
|
# Handle a channel specific feerate base ppm configuration
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_specific_feerates,1029
|
|
|
|
msgdata,channel_specific_feerates,feerate_base,u32,
|
|
|
|
msgdata,channel_specific_feerates,feerate_ppm,u32,
|
2019-04-25 13:58:07 +02:00
|
|
|
|
|
|
|
# When we receive announcement_signatures for channel announce
|
2019-07-24 00:51:11 +02:00
|
|
|
msgtype,channel_got_announcement,1017
|
|
|
|
msgdata,channel_got_announcement,remote_ann_node_sig,secp256k1_ecdsa_signature,
|
|
|
|
msgdata,channel_got_announcement,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature,
|