Files
palladum-lightning/openingd/dualopend_wire.csv
Rusty Russell e531ff83b3 lightningd: add dev-any-channel-type to allow obsolete channel types.
We're about to make static_remotekey compulsory, but we still want to
do tests for pre-existing channels.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2024-01-29 13:40:34 +10:30

13 KiB

1#include <bitcoin/chainparams.h>
2#include <bitcoin/psbt.h>
3#include <common/cryptomsg.h>
4#include <common/channel_config.h>
5#include <common/channel_id.h>
6#include <common/channel_type.h>
7#include <common/derive_basepoints.h>
8#include <common/features.h>
9#include <common/fee_states.h>
10#include <common/htlc_wire.h>
11#include <common/penalty_base.h>
12#include <common/tx_roles.h>
13#include <secp256k1.h>
14#include <wire/peer_wire.h>
15msgtypedualopend_init7000
16# Which network are we configured for?
17msgdatadualopend_initchainparamschainparams
18msgdatadualopend_initour_feature_setfeature_set
19msgdatadualopend_inittheir_init_features_lenu16
20msgdatadualopend_inittheir_init_featuresu8their_init_features_len
21# Base configuration we'll offer
22msgdatadualopend_initour_configchannel_config
23# Minimum/maximum configuration values we'll accept
24msgdatadualopend_initmax_to_self_delayu32
25msgdatadualopend_initmin_effective_htlc_capacity_msatamount_msat
26msgdatadualopend_initour_basepointsbasepoints
27msgdatadualopend_initour_funding_pubkeypubkey
28# Constraints in case the other end tries to open a channel.
29msgdatadualopend_initminimum_depthu32
30msgdatadualopend_initrequire_confirmed_inputsbool
31msgdatadualopend_initdev_accept_any_channel_typebool
32# master-dualopend: peer has reconnected
33msgtypedualopend_reinit7001
34msgdatadualopend_reinitchainparamschainparams
35msgdatadualopend_reinitfrom_abortbool
36msgdatadualopend_reinitour_feature_setfeature_set
37msgdatadualopend_reinittheir_init_features_lenu16
38msgdatadualopend_reinittheir_init_featuresu8their_init_features_len
39msgdatadualopend_reinitour_configchannel_config
40msgdatadualopend_reinittheir_configchannel_config
41msgdatadualopend_reinitchannel_idchannel_id
42msgdatadualopend_reinitmax_to_self_delayu32
43msgdatadualopend_reinitmin_effective_htlc_capacity_msatamount_msat
44msgdatadualopend_reinitour_basepointsbasepoints
45msgdatadualopend_reinitour_funding_pubkeypubkey
46msgdatadualopend_reinittheir_funding_pubkeypubkey
47msgdatadualopend_reinitminimum_depthu32
48msgdatadualopend_reinitfundingbitcoin_outpoint
49msgdatadualopend_reinitmost_recent_feerate_per_kw_fundingu32
50msgdatadualopend_reinitfunding_satoshiamount_sat
51msgdatadualopend_reinitour_fundingamount_msat
52msgdatadualopend_reinittheir_basepointsbasepoints
53msgdatadualopend_reinitremote_per_commitpubkey
54msgdatadualopend_reinitfunding_psbtwally_psbt
55msgdatadualopend_reinitopenerenum side
56msgdatadualopend_reinitlocal_channel_readybool
57msgdatadualopend_reinitremote_channel_readybool
58msgdatadualopend_reinitsend_shutdownbool
59msgdatadualopend_reinitremote_shutdown_receivedbool
60msgdatadualopend_reinitlocal_shutdown_lenu16
61msgdatadualopend_reinitlocal_shutdown_scriptpubkeyu8local_shutdown_len
62msgdatadualopend_reinitremote_shutdown_lenu16
63msgdatadualopend_reinitremote_shutdown_scriptpubkeyu8remote_shutdown_len
64msgdatadualopend_reinitlocal_shutdown_wallet_index?u32
65msgdatadualopend_reinitremote_funding_sigs_receivedbool
66msgdatadualopend_reinitremote_commit_receivedbool
67msgdatadualopend_reinitfee_statesfee_states
68msgdatadualopend_reinitchannel_flagsu8
69msgdatadualopend_reinitlease_start_blockheightu32
70msgdatadualopend_reinitlease_expiryu32
71msgdatadualopend_reinitlease_commit_sig?secp256k1_ecdsa_signature
72msgdatadualopend_reinitlease_chan_max_msatu32
73msgdatadualopend_reinitlease_chan_max_pptu16
74msgdatadualopend_reinitrequested_lease?amount_sat
75msgdatadualopend_reinitchannel_typechannel_type
76msgdatadualopend_reinitwe_require_confirmed_inputsbool
77msgdatadualopend_reinitthey_require_confirmed_inputsbool
78# dualopend->master: they offered channelshould we continue?
79msgtypedualopend_got_offer7005
80msgdatadualopend_got_offerchannel_idchannel_id
81msgdatadualopend_got_offeropener_fundingamount_sat
82msgdatadualopend_got_offerdust_limit_satoshisamount_sat
83msgdatadualopend_got_offermax_htlc_value_in_flight_msatamount_msat
84msgdatadualopend_got_offerhtlc_minimum_msatamount_msat
85msgdatadualopend_got_offerfeerate_per_kw_fundingu32
86msgdatadualopend_got_offerfeerate_per_kw_commitmentu32
87msgdatadualopend_got_offerto_self_delayu16
88msgdatadualopend_got_offermax_accepted_htlcsu16
89msgdatadualopend_got_offerchannel_flagsu8
90msgdatadualopend_got_offerlocktimeu32
91msgdatadualopend_got_offershutdown_lenu16
92msgdatadualopend_got_offershutdown_scriptpubkeyu8shutdown_len
93msgdatadualopend_got_offerrequested_amt?amount_sat
94msgdatadualopend_got_offerlease_blockheight_startu32
95msgdatadualopend_got_offerrequire_confirmed_inputsbool
96# master->dualopend: reply back with our first funding info/contribs
97msgtypedualopend_got_offer_reply7105
98msgdatadualopend_got_offer_replyaccepter_fundingamount_sat
99msgdatadualopend_got_offer_replypsbtwally_psbt
100msgdatadualopend_got_offer_replyshutdown_lenu16
101msgdatadualopend_got_offer_replyour_shutdown_scriptpubkey?u8shutdown_len
102msgdatadualopend_got_offer_replyour_shutdown_wallet_index?u32
103# must go last because of embedded tu32
104msgdatadualopend_got_offer_replylease_rates?lease_rates
105# dualopend->master: they offered a RBFshould we continue?
106msgtypedualopend_got_rbf_offer7500
107msgdatadualopend_got_rbf_offerchannel_idchannel_id
108msgdatadualopend_got_rbf_offertheir_last_fundingamount_sat
109msgdatadualopend_got_rbf_offertheir_curr_fundingamount_sat
110msgdatadualopend_got_rbf_offerour_last_fundingamount_sat
111msgdatadualopend_got_rbf_offerfunding_feerate_per_kwu32
112msgdatadualopend_got_rbf_offerlocktimeu32
113msgdatadualopend_got_rbf_offerrequested_lease?amount_sat
114# master->dualopend: reply back with our funding info/contribs
115msgtypedualopend_got_rbf_offer_reply7505
116msgdatadualopend_got_rbf_offer_replyour_fundingamount_sat
117msgdatadualopend_got_rbf_offer_replypsbtwally_psbt
118# dualopend->master: is this a valid RBF candidate transaction?
119msgtypedualopend_rbf_validate7506
120msgdatadualopend_rbf_validateproposed_funding_psbtwally_psbt
121# master->dualopend: this is a valid RBF candidate transaction
122msgtypedualopend_rbf_valid7507
123# master->dualopend: attempt an RBF
124msgtypedualopend_rbf_init7509
125msgdatadualopend_rbf_initour_fundingamount_sat
126msgdatadualopend_rbf_initfunding_feerate_perkwu32
127msgdatadualopend_rbf_initpsbtwally_psbt
128# dualopend->master: about to send first commitment_signed
129msgtypedualopend_commit_ready7009
130msgdatadualopend_commit_readytheir_configchannel_config
131msgdatadualopend_commit_readypsbtwally_psbt
132msgdatadualopend_commit_readyrevocation_basepointpubkey
133msgdatadualopend_commit_readypayment_basepointpubkey
134msgdatadualopend_commit_readyhtlc_basepointpubkey
135msgdatadualopend_commit_readydelayed_payment_basepointpubkey
136msgdatadualopend_commit_readytheir_per_commit_pointpubkey
137msgdatadualopend_commit_readyremote_fundingkeypubkey
138msgdatadualopend_commit_readyfundingbitcoin_outpoint
139msgdatadualopend_commit_readyfunding_satoshisamount_sat
140msgdatadualopend_commit_readyour_funding_satsamount_sat
141msgdatadualopend_commit_readychannel_flagsu8
142msgdatadualopend_commit_readyfeerate_per_kw_fundingu32
143msgdatadualopend_commit_readyfeerate_per_kw_commitmentu32
144msgdatadualopend_commit_readylocal_shutdown_lenu16
145msgdatadualopend_commit_readylocal_shutdown_scriptpubkeyu8local_shutdown_len
146msgdatadualopend_commit_readyremote_shutdown_lenu16
147msgdatadualopend_commit_readyremote_shutdown_scriptpubkeyu8remote_shutdown_len
148msgdatadualopend_commit_readylease_amtamount_sat
149msgdatadualopend_commit_readylease_start_blockheightu32
150msgdatadualopend_commit_readylease_expiryu32
151msgdatadualopend_commit_readylease_feeamount_sat
152msgdatadualopend_commit_readylease_commit_sig?secp256k1_ecdsa_signature
153msgdatadualopend_commit_readylease_chan_max_msatu32
154msgdatadualopend_commit_readylease_chan_max_pptu16
155msgdatadualopend_commit_readychannel_typechannel_type
156# master->dualopend: channel saved to disk
157msgtypedualopend_commit_send_ack7109
158# dualopend->master: received commitment signed from peer
159# get some signatures for the funding_tx.
160msgtypedualopend_commit_rcvd7007
161msgdatadualopend_commit_rcvdremote_first_commitbitcoin_tx
162msgdatadualopend_commit_rcvdfirst_commit_sigbitcoin_signature
163msgdatadualopend_commit_rcvdpbase?penalty_base
164# dualopend->master: peer updated the psbt
165msgtypedualopend_psbt_changed7107
166msgdatadualopend_psbt_changedchannel_idchannel_id
167msgdatadualopend_psbt_changedrequires_confirmed_inputsbool
168msgdatadualopend_psbt_changedfunding_serialu64
169msgdatadualopend_psbt_changedpsbtwally_psbt
170# master->dualopend: we updated the psbt
171msgtypedualopend_psbt_updated7108
172msgdatadualopend_psbt_updatedpsbtwally_psbt
173# master->dualopend: fail this channel open
174msgtypedualopend_fail7003
175msgdatadualopend_failreasonwirestring
176# master->dualopend: helloI'd like to start a channel open
177msgtypedualopend_opener_init7200
178msgdatadualopend_opener_initpsbtwally_psbt
179msgdatadualopend_opener_initfunding_amountamount_sat
180msgdatadualopend_opener_initlocal_shutdown_lenu16
181msgdatadualopend_opener_initlocal_shutdown_scriptpubkeyu8local_shutdown_len
182msgdatadualopend_opener_initlocal_shutdown_wallet_index?u32
183msgdatadualopend_opener_initfeerate_per_kwu32
184msgdatadualopend_opener_initanchor_feerate_per_kwu32
185msgdatadualopend_opener_initfeerate_per_kw_fundingu32
186msgdatadualopend_opener_initchannel_flagsu8
187msgdatadualopend_opener_initrequested_sats?amount_sat
188msgdatadualopend_opener_initblockheightu32
189msgdatadualopend_opener_initdry_runbool
190msgdatadualopend_opener_initchannel_type?channel_type
191# must go last because embedded tu32
192msgdatadualopend_opener_initexpected_rates?lease_rates
193# dualopend->master received tx_sigs from peer
194msgtypedualopend_funding_sigs7010
195msgdatadualopend_funding_sigssigned_psbtwally_psbt
196# master->dualopend send our tx_sigs to peer
197msgtypedualopend_send_tx_sigs7011
198msgdatadualopend_send_tx_sigssigned_psbtwally_psbt
199# dualopend->master tx sigs transmitted to peer
200msgtypedualopend_tx_sigs_sent7012
201# dualopend->peer peer locked channel
202msgtypedualopend_peer_locked7018
203msgdatadualopend_peer_lockedremote_per_commitpubkey
204# dualopend->master this channel has been locked
205msgtypedualopend_channel_locked7019
206# master->dualopend funding reached depth; tell peer
207msgtypedualopend_depth_reached7020
208msgdatadualopend_depth_reacheddepthu32
209# Tell peer to shut down channel.
210msgtypedualopend_send_shutdown7023
211msgdatadualopend_send_shutdownshutdown_scriptpubkey_lenu16
212msgdatadualopend_send_shutdownshutdown_scriptpubkeyu8shutdown_scriptpubkey_len
213# Peer told us that channel is shutting down
214msgtypedualopend_got_shutdown7024
215msgdatadualopend_got_shutdownscriptpubkey_lenu16
216msgdatadualopend_got_shutdownscriptpubkeyu8scriptpubkey_len
217# Peer presented proof it was from the future.
218msgtypedualopend_fail_fallen_behind1028
219# Shutdown is completeready for closing negotiation. + peer_fd & gossip_fd.
220msgtypedualopend_shutdown_complete7025
221# master -> dualopend: do you have a memleak?
222msgtypedualopend_dev_memleak7033
223msgtypedualopend_dev_memleak_reply7133
224msgdatadualopend_dev_memleak_replyleakbool
225# dualopend -> master: this was a dry runhere's some info about this open
226msgtypedualopend_dry_run7026
227msgdatadualopend_dry_runchannel_idchannel_id
228msgdatadualopend_dry_runour_fundingamount_sat
229msgdatadualopend_dry_runtheir_fundingamount_sat
230msgdatadualopend_dry_runrequires_confirmed_inputsbool
231# must go last because of embedded tu32
232msgdatadualopend_dry_runlease_rates?lease_rates
233# dualopend -> master: are inputs in this psbt confirmed?
234msgtypedualopend_validate_inputs7029
235msgdatadualopend_validate_inputspsbtwally_psbt
236msgdatadualopend_validate_inputssideenum tx_role
237# master -> dualopend: confirms inputs are valid
238msgtypedualopend_validate_inputs_reply7030
239# dualopend -> master: validate liqudity offer sig
240msgtypedualopend_validate_lease7027
241msgdatadualopend_validate_leasesigsecp256k1_ecdsa_signature
242msgdatadualopend_validate_leaselease_expiryu32
243msgdatadualopend_validate_leasechan_fee_max_base_msatu32
244msgdatadualopend_validate_leasechan_fee_max_pptu16
245msgdatadualopend_validate_leasetheir_pubkeypubkey
246msgtypedualopend_validate_lease_reply7127
247msgdatadualopend_validate_lease_replyerr_msg?wirestring
248# Tell gossipd about this (as-yet) unannounced channel
249msgtypedualopend_local_private_channel7015
250msgdatadualopend_local_private_channelcapacityamount_sat
251msgdatadualopend_local_private_channellenu16
252msgdatadualopend_local_private_channelfeaturesu8len