Skip to content

Commit

Permalink
wire-gen: move in-house wire delcarations to new format
Browse files Browse the repository at this point in the history
tidying things up!
  • Loading branch information
niftynei authored and rustyrussell committed Jul 24, 2019
1 parent 236d263 commit 32eaae0
Show file tree
Hide file tree
Showing 23 changed files with 710 additions and 705 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,8 @@ ALL_GEN_HEADERS += gen_version.h

CDUMP_OBJS := ccan-cdump.o ccan-strmap.o

WIRE_GEN := tools/generate-wire.py
BOLT_GEN := tools/generate-bolts.py
WIRE_GEN := $(BOLT_GEN)
BOLT_DEPS := $(BOLT_GEN)

ALL_PROGRAMS =
Expand Down
4 changes: 2 additions & 2 deletions channeld/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,10 @@ channeld/gen_full_channel_error_names.h: channeld/full_channel_error.h ccan/ccan
$(LIGHTNINGD_CHANNEL_OBJS): $(LIGHTNINGD_HEADERS) $(LIGHTNINGD_GOSSIP_CONTROL_HEADERS)

channeld/gen_channel_wire.h: $(WIRE_GEN) channeld/channel_wire.csv
$(WIRE_GEN) --header $@ channel_wire_type < channeld/channel_wire.csv > $@
$(WIRE_GEN) --page header $@ channel_wire_type < channeld/channel_wire.csv > $@

channeld/gen_channel_wire.c: $(WIRE_GEN) channeld/channel_wire.csv
$(WIRE_GEN) ${@:.c=.h} channel_wire_type < channeld/channel_wire.csv > $@
$(WIRE_GEN) --page impl ${@:.c=.h} channel_wire_type < channeld/channel_wire.csv > $@

LIGHTNINGD_CHANNEL_OBJS := $(LIGHTNINGD_CHANNEL_SRC:.c=.o)

Expand Down
280 changes: 140 additions & 140 deletions channeld/channel_wire.csv
Original file line number Diff line number Diff line change
Expand Up @@ -4,192 +4,192 @@
#include <common/per_peer_state.h>

# Begin! (passes gossipd-client fd)
channel_init,1000
channel_init,,chain_hash,struct bitcoin_blkid
channel_init,,funding_txid,struct bitcoin_txid
channel_init,,funding_txout,u16
channel_init,,funding_satoshi,struct amount_sat
channel_init,,minimum_depth,u32
channel_init,,our_config,struct channel_config
channel_init,,their_config,struct channel_config
# FIXME: Fix generate-wire.py to allow NUM_SIDES*u32 here.
channel_init,,feerate_per_kw,2*u32
channel_init,,feerate_min,u32
channel_init,,feerate_max,u32
channel_init,,first_commit_sig,struct bitcoin_signature
channel_init,,per_peer_state,struct per_peer_state
channel_init,,remote_fundingkey,struct pubkey
channel_init,,remote_basepoints,struct basepoints
channel_init,,remote_per_commit,struct pubkey
channel_init,,old_remote_per_commit,struct pubkey
channel_init,,funder,enum side
channel_init,,fee_base,u32
channel_init,,fee_proportional,u32
channel_init,,local_msatoshi,struct amount_msat
channel_init,,our_basepoints,struct basepoints
channel_init,,our_funding_pubkey,struct pubkey
channel_init,,local_node_id,struct node_id
channel_init,,remote_node_id,struct node_id
channel_init,,commit_msec,u32
channel_init,,cltv_delta,u16
channel_init,,last_was_revoke,bool
channel_init,,num_last_sent_commit,u16
channel_init,,last_sent_commit,num_last_sent_commit*struct changed_htlc
channel_init,,next_index_local,u64
channel_init,,next_index_remote,u64
channel_init,,revocations_received,u64
channel_init,,next_htlc_id,u64
channel_init,,num_htlcs,u16
channel_init,,htlcs,num_htlcs*struct added_htlc
channel_init,,htlc_states,num_htlcs*enum htlc_state
channel_init,,num_fulfilled,u16
channel_init,,fulfilled,num_fulfilled*struct fulfilled_htlc
channel_init,,fulfilled_sides,num_fulfilled*enum side
channel_init,,num_failed,u16
channel_init,,failed,num_failed*struct failed_htlc
channel_init,,failed_sides,num_failed*enum side
channel_init,,local_funding_locked,bool
channel_init,,remote_funding_locked,bool
channel_init,,funding_short_id,struct short_channel_id
channel_init,,reestablish,bool
channel_init,,send_shutdown,bool
channel_init,,remote_shutdown_received,bool
channel_init,,final_scriptpubkey_len,u16
channel_init,,final_scriptpubkey,final_scriptpubkey_len*u8
channel_init,,flags,u8
channel_init,,init_peer_pkt_len,u16
channel_init,,init_peer_pkt,init_peer_pkt_len*u8
channel_init,,reached_announce_depth,bool
channel_init,,last_remote_secret,struct secret
channel_init,,lflen,u16
channel_init,,localfeatures,lflen*u8
channel_init,,upfront_shutdown_script_len,u16
channel_init,,upfront_shutdown_script,upfront_shutdown_script_len*u8
channel_init,,remote_ann_node_sig,?secp256k1_ecdsa_signature
channel_init,,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature
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,

# master->channeld funding hit new depth(funding locked if >= lock depth)
channel_funding_depth,1002
channel_funding_depth,,short_channel_id,?struct short_channel_id
channel_funding_depth,,depth,u32
msgtype,channel_funding_depth,1002
msgdata,channel_funding_depth,short_channel_id,?short_channel_id,
msgdata,channel_funding_depth,depth,u32,

# Tell channel to offer this htlc
channel_offer_htlc,1004
channel_offer_htlc,,amount_msat,struct amount_msat
channel_offer_htlc,,cltv_expiry,u32
channel_offer_htlc,,payment_hash,struct sha256
channel_offer_htlc,,onion_routing_packet,1366*u8
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

# Reply; synchronous since IDs have to increment.
channel_offer_htlc_reply,1104
channel_offer_htlc_reply,,id,u64
# Zero failure code means success.
channel_offer_htlc_reply,,failure_code,u16
channel_offer_htlc_reply,,failurestrlen,u16
channel_offer_htlc_reply,,failurestr,failurestrlen*u8
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

# Main daemon found out the preimage for an HTLC
#include <bitcoin/preimage.h>
channel_fulfill_htlc,1005
channel_fulfill_htlc,,fulfilled_htlc,struct fulfilled_htlc
msgtype,channel_fulfill_htlc,1005
msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc,

# Main daemon says HTLC failed
channel_fail_htlc,1006
channel_fail_htlc,,failed_htlc,struct failed_htlc
msgtype,channel_fail_htlc,1006
msgdata,channel_fail_htlc,failed_htlc,failed_htlc,

# When we receive funding_locked.
channel_got_funding_locked,1019
channel_got_funding_locked,,next_per_commit_point,struct pubkey
msgtype,channel_got_funding_locked,1019
msgdata,channel_got_funding_locked,next_per_commit_point,pubkey,

# When we send a commitment_signed message, tell master.
channel_sending_commitsig,1020
channel_sending_commitsig,,commitnum,u64
channel_sending_commitsig,,feerate,u32
msgtype,channel_sending_commitsig,1020
msgdata,channel_sending_commitsig,commitnum,u64,
msgdata,channel_sending_commitsig,feerate,u32,
# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
channel_sending_commitsig,,num_changed,u16
channel_sending_commitsig,,changed,num_changed*struct changed_htlc
channel_sending_commitsig,,commit_sig,struct bitcoin_signature
channel_sending_commitsig,,num_htlc_sigs,u16
channel_sending_commitsig,,htlc_sigs,num_htlc_sigs*secp256k1_ecdsa_signature
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

# Wait for reply, to make sure it's on disk before we send commit.
channel_sending_commitsig_reply,1120
msgtype,channel_sending_commitsig_reply,1120

# When we have a commitment_signed message, tell master to remember.
channel_got_commitsig,1021
channel_got_commitsig,,commitnum,u64
channel_got_commitsig,,feerate,u32
channel_got_commitsig,,signature,struct bitcoin_signature
channel_got_commitsig,,num_htlcs,u16
channel_got_commitsig,,htlc_signature,num_htlcs*secp256k1_ecdsa_signature
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
# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
channel_got_commitsig,,num_added,u16
channel_got_commitsig,,added,num_added*struct added_htlc
channel_got_commitsig,,shared_secret,num_added*struct secret
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
# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
channel_got_commitsig,,num_fulfilled,u16
channel_got_commitsig,,fulfilled,num_fulfilled*struct fulfilled_htlc
channel_got_commitsig,,num_failed,u16
channel_got_commitsig,,failed,num_failed*struct failed_htlc
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
# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
channel_got_commitsig,,num_changed,u16
channel_got_commitsig,,changed,num_changed*struct changed_htlc
channel_got_commitsig,,tx,struct bitcoin_tx
msgdata,channel_got_commitsig,num_changed,u16,
msgdata,channel_got_commitsig,changed,changed_htlc,num_changed
msgdata,channel_got_commitsig,tx,bitcoin_tx,

# Wait for reply, to make sure it's on disk before we send revocation.
channel_got_commitsig_reply,1121
msgtype,channel_got_commitsig_reply,1121

#include <common/htlc_wire.h>

channel_got_revoke,1022
channel_got_revoke,,revokenum,u64
channel_got_revoke,,per_commitment_secret,struct secret
channel_got_revoke,,next_per_commit_point,struct pubkey
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,
# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
channel_got_revoke,,feerate,u32
channel_got_revoke,,num_changed,u16
channel_got_revoke,,changed,num_changed*struct changed_htlc
msgdata,channel_got_revoke,feerate,u32,
msgdata,channel_got_revoke,num_changed,u16,
msgdata,channel_got_revoke,changed,changed_htlc,num_changed
# Wait for reply, to make sure it's on disk before we continue
# (eg. if we sent another commitment_signed, that would implicitly ack).
channel_got_revoke_reply,1122
msgtype,channel_got_revoke_reply,1122

# Tell peer to shut down channel.
channel_send_shutdown,1023
msgtype,channel_send_shutdown,1023

# Peer told us that channel is shutting down
channel_got_shutdown,1024
channel_got_shutdown,,scriptpubkey_len,u16
channel_got_shutdown,,scriptpubkey,scriptpubkey_len*u8
msgtype,channel_got_shutdown,1024
msgdata,channel_got_shutdown,scriptpubkey_len,u16,
msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len

# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
channel_shutdown_complete,1025
channel_shutdown_complete,,per_peer_state,struct per_peer_state
msgtype,channel_shutdown_complete,1025
msgdata,channel_shutdown_complete,per_peer_state,per_peer_state,

# Re-enable commit timer.
channel_dev_reenable_commit,1026
channel_dev_reenable_commit_reply,1126
msgtype,channel_dev_reenable_commit,1026
msgtype,channel_dev_reenable_commit_reply,1126,

channel_feerates,1027
channel_feerates,,feerate,u32
channel_feerates,,min_feerate,u32
channel_feerates,,max_feerate,u32
msgtype,channel_feerates,1027
msgdata,channel_feerates,feerate,u32,
msgdata,channel_feerates,min_feerate,u32,
msgdata,channel_feerates,max_feerate,u32,

# master -> channeld: do you have a memleak?
channel_dev_memleak,1033
msgtype,channel_dev_memleak,1033

channel_dev_memleak_reply,1133
channel_dev_memleak_reply,,leak,bool
msgtype,channel_dev_memleak_reply,1133
msgdata,channel_dev_memleak_reply,leak,bool,

# Peer presented proof it was from the future.
channel_fail_fallen_behind,1028
channel_fail_fallen_behind,,remote_per_commitment_point,struct pubkey
msgtype,channel_fail_fallen_behind,1028
msgdata,channel_fail_fallen_behind,remote_per_commitment_point,pubkey,

# Handle a channel specific feerate base ppm configuration
channel_specific_feerates,1029
channel_specific_feerates,,feerate_base,u32
channel_specific_feerates,,feerate_ppm,u32
msgtype,channel_specific_feerates,1029
msgdata,channel_specific_feerates,feerate_base,u32,
msgdata,channel_specific_feerates,feerate_ppm,u32,

# When we receive announcement_signatures for channel announce
channel_got_announcement,1017
channel_got_announcement,,remote_ann_node_sig,secp256k1_ecdsa_signature
channel_got_announcement,,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature
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,
4 changes: 2 additions & 2 deletions closingd/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ CLOSINGD_COMMON_OBJS := \
hsmd/gen_hsm_wire.o

closingd/gen_closing_wire.h: $(WIRE_GEN) closingd/closing_wire.csv
$(WIRE_GEN) --header $@ closing_wire_type < closingd/closing_wire.csv > $@
$(WIRE_GEN) --page header $@ closing_wire_type < closingd/closing_wire.csv > $@

closingd/gen_closing_wire.c: $(WIRE_GEN) closingd/closing_wire.csv
$(WIRE_GEN) ${@:.c=.h} closing_wire_type < closingd/closing_wire.csv > $@
$(WIRE_GEN) --page impl ${@:.c=.h} closing_wire_type < closingd/closing_wire.csv > $@

LIGHTNINGD_CLOSING_OBJS := $(LIGHTNINGD_CLOSING_SRC:.c=.o) $(LIGHTNINGD_CLOSING_GEN_SRC:.c=.o)

Expand Down
Loading

0 comments on commit 32eaae0

Please sign in to comment.