core-lightning/hsmd/hsm_wire.csv
darosior 273029f244 wallet: set nLockTime to the tip for withdrawal transactions
This sets the nLockTime to the tip (and accordingly each input's nSequence to
0xfffffffe) for withdrawal transactions.

Even if the anti fee-sniping argument might not be valid until some time yet,
this makes our regular wallet transactions far less distinguishable from
bitcoind's ones since it now defaults to using native Segwit transactions
(like us). Moreover other wallets are likely to implement this (if they
haven't already).

Changelog-Added: wallet: withdrawal transactions now sets nlocktime to the current tip.
2020-02-03 00:45:27 +00:00

7.9 KiB

1# Clients should not give a bad request but not the HSM's decision to crash.
2msgtype,hsmstatus_client_bad_request,1000
3msgdata,hsmstatus_client_bad_request,id,node_id,
4msgdata,hsmstatus_client_bad_request,description,wirestring,
5msgdata,hsmstatus_client_bad_request,len,u16,
6msgdata,hsmstatus_client_bad_request,msg,u8,len
7#include <bitcoin/chainparams.h>
8# Start the HSM.
9msgtype,hsm_init,11
10msgdata,hsm_init,bip32_key_version,bip32_key_version,
11msgdata,hsm_init,chainparams,chainparams,
12msgdata,hsm_init,hsm_encryption_key,?secret,
13msgdata,hsm_init,dev_force_privkey,?privkey,
14msgdata,hsm_init,dev_force_bip32_seed,?secret,
15msgdata,hsm_init,dev_force_channel_secrets,?secrets,
16msgdata,hsm_init,dev_force_channel_secrets_shaseed,?sha256,
17#include <common/bip32.h>
18msgtype,hsm_init_reply,111
19msgdata,hsm_init_reply,node_id,node_id,
20msgdata,hsm_init_reply,bip32,ext_key,
21# Get a new HSM FD, with the specified capabilities
22msgtype,hsm_client_hsmfd,9
23# Which identity to use for requests
24msgdata,hsm_client_hsmfd,id,node_id,
25# Database id for this client, if any.
26msgdata,hsm_client_hsmfd,dbid,u64,
27msgdata,hsm_client_hsmfd,capabilities,u64,
28# No content, just an fd.
29msgtype,hsm_client_hsmfd_reply,109
30#include <common/derive_basepoints.h>
31# Get the basepoints and funding key for this specific channel.
32msgtype,hsm_get_channel_basepoints,10
33msgdata,hsm_get_channel_basepoints,peerid,node_id,
34msgdata,hsm_get_channel_basepoints,dbid,u64,
35msgtype,hsm_get_channel_basepoints_reply,110
36msgdata,hsm_get_channel_basepoints_reply,basepoints,basepoints,
37msgdata,hsm_get_channel_basepoints_reply,funding_pubkey,pubkey,
38# Return signature for a funding tx.
39#include <common/utxo.h>
40# FIXME: This should also take their commit sig & details, to verify.
41msgtype,hsm_sign_funding,4
42msgdata,hsm_sign_funding,satoshi_out,amount_sat,
43msgdata,hsm_sign_funding,change_out,amount_sat,
44msgdata,hsm_sign_funding,change_keyindex,u32,
45msgdata,hsm_sign_funding,our_pubkey,pubkey,
46msgdata,hsm_sign_funding,their_pubkey,pubkey,
47msgdata,hsm_sign_funding,num_inputs,u16,
48msgdata,hsm_sign_funding,inputs,utxo,num_inputs
49msgtype,hsm_sign_funding_reply,104
50msgdata,hsm_sign_funding_reply,tx,bitcoin_tx,
51# Master asks the HSM to sign a node_announcement
52msgtype,hsm_node_announcement_sig_req,6
53msgdata,hsm_node_announcement_sig_req,annlen,u16,
54msgdata,hsm_node_announcement_sig_req,announcement,u8,annlen
55msgtype,hsm_node_announcement_sig_reply,106
56msgdata,hsm_node_announcement_sig_reply,signature,secp256k1_ecdsa_signature,
57# Sign a withdrawal request
58msgtype,hsm_sign_withdrawal,7
59msgdata,hsm_sign_withdrawal,satoshi_out,amount_sat,
60msgdata,hsm_sign_withdrawal,change_out,amount_sat,
61msgdata,hsm_sign_withdrawal,change_keyindex,u32,
62msgdata,hsm_sign_withdrawal,num_outputs,u16,
63msgdata,hsm_sign_withdrawal,outputs,bitcoin_tx_output,num_outputs
64msgdata,hsm_sign_withdrawal,num_inputs,u16,
65msgdata,hsm_sign_withdrawal,inputs,utxo,num_inputs
66msgdata,hsm_sign_withdrawal,nlocktime,u32,
67msgtype,hsm_sign_withdrawal_reply,107
68msgdata,hsm_sign_withdrawal_reply,tx,bitcoin_tx,
69# Sign an invoice
70msgtype,hsm_sign_invoice,8
71msgdata,hsm_sign_invoice,len,u16,
72msgdata,hsm_sign_invoice,u5bytes,u8,len
73msgdata,hsm_sign_invoice,hrplen,u16,
74msgdata,hsm_sign_invoice,hrp,u8,hrplen
75msgtype,hsm_sign_invoice_reply,108
76msgdata,hsm_sign_invoice_reply,sig,secp256k1_ecdsa_recoverable_signature,
77# Give me ECDH(node-id-secret,point)
78msgtype,hsm_ecdh_req,1
79msgdata,hsm_ecdh_req,point,pubkey,
80msgtype,hsm_ecdh_resp,100
81msgdata,hsm_ecdh_resp,ss,secret,
82msgtype,hsm_cannouncement_sig_req,2
83msgdata,hsm_cannouncement_sig_req,calen,u16,
84msgdata,hsm_cannouncement_sig_req,ca,u8,calen
85msgtype,hsm_cannouncement_sig_reply,102
86msgdata,hsm_cannouncement_sig_reply,node_signature,secp256k1_ecdsa_signature,
87msgdata,hsm_cannouncement_sig_reply,bitcoin_signature,secp256k1_ecdsa_signature,
88msgtype,hsm_cupdate_sig_req,3
89msgdata,hsm_cupdate_sig_req,culen,u16,
90msgdata,hsm_cupdate_sig_req,cu,u8,culen
91msgtype,hsm_cupdate_sig_reply,103
92msgdata,hsm_cupdate_sig_reply,culen,u16,
93msgdata,hsm_cupdate_sig_reply,cu,u8,culen
94# Master asks HSM to sign a commitment transaction.
95msgtype,hsm_sign_commitment_tx,5
96msgdata,hsm_sign_commitment_tx,peer_id,node_id,
97msgdata,hsm_sign_commitment_tx,channel_dbid,u64,
98msgdata,hsm_sign_commitment_tx,tx,bitcoin_tx,
99msgdata,hsm_sign_commitment_tx,remote_funding_key,pubkey,
100msgdata,hsm_sign_commitment_tx,funding_amount,amount_sat,
101msgtype,hsm_sign_commitment_tx_reply,105
102msgdata,hsm_sign_commitment_tx_reply,sig,bitcoin_signature,
103# Onchaind asks HSM to sign a spend to-us. Four variants, since each set
104# of keys is derived differently...
105# FIXME: Have master tell hsmd the keyindex, so it can validate output!
106msgtype,hsm_sign_delayed_payment_to_us,12
107msgdata,hsm_sign_delayed_payment_to_us,commit_num,u64,
108msgdata,hsm_sign_delayed_payment_to_us,tx,bitcoin_tx,
109msgdata,hsm_sign_delayed_payment_to_us,wscript_len,u16,
110msgdata,hsm_sign_delayed_payment_to_us,wscript,u8,wscript_len
111msgdata,hsm_sign_delayed_payment_to_us,input_amount,amount_sat,
112msgtype,hsm_sign_remote_htlc_to_us,13
113msgdata,hsm_sign_remote_htlc_to_us,remote_per_commitment_point,pubkey,
114msgdata,hsm_sign_remote_htlc_to_us,tx,bitcoin_tx,
115msgdata,hsm_sign_remote_htlc_to_us,wscript_len,u16,
116msgdata,hsm_sign_remote_htlc_to_us,wscript,u8,wscript_len
117msgdata,hsm_sign_remote_htlc_to_us,input_amount,amount_sat,
118msgtype,hsm_sign_penalty_to_us,14
119msgdata,hsm_sign_penalty_to_us,revocation_secret,secret,
120msgdata,hsm_sign_penalty_to_us,tx,bitcoin_tx,
121msgdata,hsm_sign_penalty_to_us,wscript_len,u16,
122msgdata,hsm_sign_penalty_to_us,wscript,u8,wscript_len
123msgdata,hsm_sign_penalty_to_us,input_amount,amount_sat,
124# Onchaind asks HSM to sign a local HTLC success or HTLC timeout tx.
125msgtype,hsm_sign_local_htlc_tx,16
126msgdata,hsm_sign_local_htlc_tx,commit_num,u64,
127msgdata,hsm_sign_local_htlc_tx,tx,bitcoin_tx,
128msgdata,hsm_sign_local_htlc_tx,wscript_len,u16,
129msgdata,hsm_sign_local_htlc_tx,wscript,u8,wscript_len
130msgdata,hsm_sign_local_htlc_tx,input_amount,amount_sat,
131# Openingd/channeld asks HSM to sign the other sides' commitment tx.
132msgtype,hsm_sign_remote_commitment_tx,19
133msgdata,hsm_sign_remote_commitment_tx,tx,bitcoin_tx,
134msgdata,hsm_sign_remote_commitment_tx,remote_funding_key,pubkey,
135msgdata,hsm_sign_remote_commitment_tx,funding_amount,amount_sat,
136# channeld asks HSM to sign remote HTLC tx.
137msgtype,hsm_sign_remote_htlc_tx,20
138msgdata,hsm_sign_remote_htlc_tx,tx,bitcoin_tx,
139msgdata,hsm_sign_remote_htlc_tx,len,u16,
140msgdata,hsm_sign_remote_htlc_tx,wscript,u8,len
141msgdata,hsm_sign_remote_htlc_tx,amounts_satoshi,amount_sat,
142msgdata,hsm_sign_remote_htlc_tx,remote_per_commit_point,pubkey,
143# closingd asks HSM to sign mutual close tx.
144msgtype,hsm_sign_mutual_close_tx,21
145msgdata,hsm_sign_mutual_close_tx,tx,bitcoin_tx,
146msgdata,hsm_sign_mutual_close_tx,remote_funding_key,pubkey,
147msgdata,hsm_sign_mutual_close_tx,funding,amount_sat,
148# Reply for all the above requests.
149msgtype,hsm_sign_tx_reply,112
150msgdata,hsm_sign_tx_reply,sig,bitcoin_signature,
151# Openingd/channeld/onchaind asks for Nth per_commitment_point, if > 2, gets N-2 secret.
152msgtype,hsm_get_per_commitment_point,18
153msgdata,hsm_get_per_commitment_point,n,u64,
154msgtype,hsm_get_per_commitment_point_reply,118
155msgdata,hsm_get_per_commitment_point_reply,per_commitment_point,pubkey,
156msgdata,hsm_get_per_commitment_point_reply,old_commitment_secret,?secret,
157# master -> hsmd: do you have a memleak?
158msgtype,hsm_dev_memleak,33
159msgtype,hsm_dev_memleak_reply,133
160msgdata,hsm_dev_memleak_reply,leak,bool,
161# channeld asks to check if claimed future commitment_secret is correct.
162msgtype,hsm_check_future_secret,22
163msgdata,hsm_check_future_secret,n,u64,
164msgdata,hsm_check_future_secret,commitment_secret,secret,
165msgtype,hsm_check_future_secret_reply,122
166msgdata,hsm_check_future_secret_reply,correct,bool,
167# lightningd asks us to sign a string.
168msgtype,hsm_sign_message,23
169msgdata,hsm_sign_message,len,u16,
170msgdata,hsm_sign_message,msg,u8,len
171msgtype,hsm_sign_message_reply,123
172msgdata,hsm_sign_message_reply,sig,secp256k1_ecdsa_recoverable_signature,