rgb-cln/hsmd/hsm_wire.csv

6.6 KiB

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