core-lightning/onchaind/onchaind_wire.csv
Rusty Russell a9dfec0e71 onchaind: use lightningd to sign and broadcast htlc_success transactions.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2023-04-07 11:49:09 +09:30

7.9 KiB

1#include <bitcoin/tx_parts.h>
2#include <common/bip32.h>
3#include <common/coin_mvt.h>
4#include <common/derive_basepoints.h>
5#include <common/htlc_wire.h>
6#include <common/wallet.h>
7# Begin! Here's the onchain tx which spends funding tx, followed by all HTLCs.
8msgtype,onchaind_init,5001
9msgdata,onchaind_init,shachain,shachain,
10# This needs to be set explicitly since the same message also contains a
11# transaction that we need to parse correctly.
12msgdata,onchaind_init,chainparams,chainparams,
13msgdata,onchaind_init,funding_amount_satoshi,amount_sat,
14# Our current balance (of funding amount, not counting any pending htlcs)
15msgdata,onchaind_init,our_msat,amount_msat,
16# Remote per commit point for committed tx.
17msgdata,onchaind_init,old_remote_per_commitment_point,pubkey,
18# Remote per commit point for current tx (needed if we haven't got revoke_and_ack yet).
19msgdata,onchaind_init,remote_per_commitment_point,pubkey,
20msgdata,onchaind_init,local_to_self_delay,u32,
21msgdata,onchaind_init,remote_to_self_delay,u32,
22msgdata,onchaind_init,delayed_to_us_feerate,u32,
23msgdata,onchaind_init,htlc_feerate,u32,
24msgdata,onchaind_init,penalty_feerate,u32,
25msgdata,onchaind_init,max_penalty_feerate,u32,
26msgdata,onchaind_init,local_dust_limit_satoshi,amount_sat,
27# Gives an easy way to tell if it's our unilateral close or theirs...
28msgdata,onchaind_init,our_broadcast_txid,bitcoin_txid,
29msgdata,onchaind_init,local_scriptpubkey_len,u16,
30msgdata,onchaind_init,local_scriptpubkey,u8,local_scriptpubkey_len
31msgdata,onchaind_init,remote_scriptpubkey_len,u16,
32msgdata,onchaind_init,remote_scriptpubkey,u8,remote_scriptpubkey_len
33msgdata,onchaind_init,ourwallet_index,u32,
34msgdata,onchaind_init,ourwallet_ext_key,ext_key,
35msgdata,onchaind_init,ourwallet_pubkey,pubkey,
36# We need these two for commit number obscurer
37msgdata,onchaind_init,opener,enum side,
38msgdata,onchaind_init,local_basepoints,basepoints,
39msgdata,onchaind_init,remote_basepoints,basepoints,
40msgdata,onchaind_init,tx_parts,tx_parts,
41msgdata,onchaind_init,locktime,u32,
42msgdata,onchaind_init,tx_blockheight,u32,
43msgdata,onchaind_init,reasonable_depth,u32,
44msgdata,onchaind_init,num_htlc_sigs,u16,
45msgdata,onchaind_init,htlc_signature,bitcoin_signature,num_htlc_sigs
46msgdata,onchaind_init,min_possible_feerate,u32,
47msgdata,onchaind_init,max_possible_feerate,u32,
48msgdata,onchaind_init,possible_remote_per_commit_point,?pubkey,
49msgdata,onchaind_init,local_funding_pubkey,pubkey,
50msgdata,onchaind_init,remote_funding_pubkey,pubkey,
51msgdata,onchaind_init,local_static_remotekey_start,u64,
52msgdata,onchaind_init,remote_static_remotekey_start,u64,
53msgdata,onchaind_init,option_anchor_outputs,bool,
54# We need this for BIP125 rule 4
55msgdata,onchaind_init,min_relay_feerate,u32,
56# This says we're ready; give us htlcs and preimages.
57msgtype,onchaind_init_reply,5101
58msgdata,onchaind_init_reply,commit_num,u64,
59#include <onchaind/onchaind_wire.h>
60msgtype,onchaind_htlcs,5002
61msgdata,onchaind_htlcs,num_htlcs,u32,
62msgdata,onchaind_htlcs,htlc,htlc_stub,num_htlcs
63# If it's not in the commitment tx, tell us (immediately or htlc_missing_depth)
64msgdata,onchaind_htlcs,tell_if_missing,bool,num_htlcs
65msgdata,onchaind_htlcs,tell_immediately,bool,num_htlcs
66# onchaind->master: Send out a tx.
67# If is_rbf is false then master should rebroadcast the tx.
68# If is_rbf is true then onchaind is responsible for rebroadcasting
69# it with a higher fee.
70msgtype,onchaind_broadcast_tx,5003
71msgdata,onchaind_broadcast_tx,tx,bitcoin_tx,
72msgdata,onchaind_broadcast_tx,is_rbf,bool,
73# master->onchaind: Notifier that an output has been spent by input_num of tx.
74msgtype,onchaind_spent,5004
75msgdata,onchaind_spent,tx,tx_parts,
76msgdata,onchaind_spent,input_num,u32,
77msgdata,onchaind_spent,blockheight,u32,
78# master->onchaind: We will receive more than one of these, as depth changes.
79msgtype,onchaind_depth,5005
80msgdata,onchaind_depth,txid,bitcoin_txid,
81msgdata,onchaind_depth,depth,u32,
82# onchaind->master: We don't want to watch this tx, or its outputs
83msgtype,onchaind_unwatch_tx,5006
84msgdata,onchaind_unwatch_tx,txid,bitcoin_txid,
85# master->onchaind: We know HTLC preimage
86msgtype,onchaind_known_preimage,5007
87msgdata,onchaind_known_preimage,preimage,preimage,
88# onchaind->master: We discovered HTLC preimage
89msgtype,onchaind_extracted_preimage,5008
90msgdata,onchaind_extracted_preimage,preimage,preimage,
91# onchaind->master: this HTLC was missing from commit tx.
92msgtype,onchaind_missing_htlc_output,5009
93msgdata,onchaind_missing_htlc_output,htlc,htlc_stub,
94# onchaind->master: this HTLC has timed out (after reasonable_depth)
95msgtype,onchaind_htlc_timeout,5010
96msgdata,onchaind_htlc_timeout,htlc,htlc_stub,
97# onchaind->master: this peer can be forgotten
98msgtype,onchaind_all_irrevocably_resolved,5011
99# onchaind->master: hey, I identified an UTXO you'll want to track
100msgtype,onchaind_add_utxo,5012
101msgdata,onchaind_add_utxo,prev_out,bitcoin_outpoint,
102msgdata,onchaind_add_utxo,per_commit_point,?pubkey,
103msgdata,onchaind_add_utxo,value,amount_sat,
104msgdata,onchaind_add_utxo,blockheight,u32,
105msgdata,onchaind_add_utxo,len,u16,
106msgdata,onchaind_add_utxo,scriptpubkey,u8,len
107msgdata,onchaind_add_utxo,csv_lock,u32,
108# master -> onchaind: do you have a memleak?
109msgtype,onchaind_dev_memleak,5033
110msgtype,onchaind_dev_memleak_reply,5133
111msgdata,onchaind_dev_memleak_reply,leak,bool,
112# Tell the main daemon what we've been watching, mainly used for transactions
113# that we tracked automatically but only onchaind knows how to classify their
114# transactions.
115msgtype,onchaind_annotate_txout,5035
116msgdata,onchaind_annotate_txout,outpoint,bitcoin_outpoint,
117msgdata,onchaind_annotate_txout,type,enum wallet_tx_type,
118msgtype,onchaind_annotate_txin,5036
119msgdata,onchaind_annotate_txin,txid,bitcoin_txid,
120msgdata,onchaind_annotate_txin,innum,u32,
121msgdata,onchaind_annotate_txin,type,enum wallet_tx_type,
122msgtype,onchaind_notify_coin_mvt,5037
123msgdata,onchaind_notify_coin_mvt,mvt,chain_coin_mvt,
124# We tell lightningd to create, sign and broadcast this tx:
125msgtype,onchaind_spend_to_us,5040
126msgdata,onchaind_spend_to_us,outpoint,bitcoin_outpoint,
127msgdata,onchaind_spend_to_us,outpoint_amount,amount_sat,
128msgdata,onchaind_spend_to_us,minblock,u32,
129msgdata,onchaind_spend_to_us,commit_num,u64,
130msgdata,onchaind_spend_to_us,wscript_len,u32,
131msgdata,onchaind_spend_to_us,wscript,u8,wscript_len
132# We tell lightningd to create, sign and broadcast this penalty tx:
133msgtype,onchaind_spend_penalty,5041
134msgdata,onchaind_spend_penalty,outpoint,bitcoin_outpoint,
135msgdata,onchaind_spend_penalty,outpoint_amount,amount_sat,
136msgdata,onchaind_spend_penalty,remote_per_commitment_secret,secret,
137msgdata,onchaind_spend_penalty,stack_elem_len,u16,
138msgdata,onchaind_spend_penalty,stack_elem,u8,stack_elem_len
139msgdata,onchaind_spend_penalty,wscript_len,u32,
140msgdata,onchaind_spend_penalty,wscript,u8,wscript_len
141# We tell lightningd to create, sign and broadcast this htlc_success tx:
142msgtype,onchaind_spend_htlc_success,5042
143msgdata,onchaind_spend_htlc_success,outpoint,bitcoin_outpoint,
144msgdata,onchaind_spend_htlc_success,outpoint_amount,amount_sat,
145msgdata,onchaind_spend_htlc_success,fee,amount_sat,
146msgdata,onchaind_spend_htlc_success,htlc_id,u64,
147msgdata,onchaind_spend_htlc_success,commit_num,u64,
148msgdata,onchaind_spend_htlc_success,remote_htlc_sig,bitcoin_signature,
149msgdata,onchaind_spend_htlc_success,preimage,preimage,
150msgdata,onchaind_spend_htlc_success,wscript_len,u32,
151msgdata,onchaind_spend_htlc_success,wscript,u8,wscript_len
152msgdata,onchaind_spend_htlc_success,htlc_wscript_len,u32,
153msgdata,onchaind_spend_htlc_success,htlc_wscript,u8,htlc_wscript_len
154subtype,onchain_witness_element
155subtypedata,onchain_witness_element,is_signature,bool,
156subtypedata,onchain_witness_element,len,u32,
157subtypedata,onchain_witness_element,witness,u8,len
158# lightningd replies; if it considers it uneconomic, it tells onchaind
159# so it doesn't wait forever!
160msgtype,onchaind_spend_created,5140
161msgdata,onchaind_spend_created,expect_to_succeed,bool,
162msgdata,onchaind_spend_created,num_witnesses,u32,
163msgdata,onchaind_spend_created,witness,onchain_witness_element,num_witnesses