mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-18 14:44:22 +01:00
The answer, it's right in the name of the option! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
9.3 KiB
9.3 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. |
| 8 | msgtype,onchaind_init,5001 |
| 9 | msgdata,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. |
| 12 | msgdata,onchaind_init,chainparams,chainparams, |
| 13 | msgdata,onchaind_init,funding_amount_satoshi,amount_sat, |
| 14 | # Our current balance (of funding amount, not counting any pending htlcs) |
| 15 | msgdata,onchaind_init,our_msat,amount_msat, |
| 16 | # Remote per commit point for committed tx. |
| 17 | msgdata,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). |
| 19 | msgdata,onchaind_init,remote_per_commitment_point,pubkey, |
| 20 | msgdata,onchaind_init,local_to_self_delay,u32, |
| 21 | msgdata,onchaind_init,remote_to_self_delay,u32, |
| 22 | msgdata,onchaind_init,local_dust_limit_satoshi,amount_sat, |
| 23 | # Gives an easy way to tell if it's our unilateral close or theirs... |
| 24 | msgdata,onchaind_init,our_broadcast_txid,bitcoin_txid, |
| 25 | msgdata,onchaind_init,local_scriptpubkey_len,u16, |
| 26 | msgdata,onchaind_init,local_scriptpubkey,u8,local_scriptpubkey_len |
| 27 | msgdata,onchaind_init,remote_scriptpubkey_len,u16, |
| 28 | msgdata,onchaind_init,remote_scriptpubkey,u8,remote_scriptpubkey_len |
| 29 | msgdata,onchaind_init,ourwallet_index,u32, |
| 30 | msgdata,onchaind_init,ourwallet_ext_key,ext_key, |
| 31 | msgdata,onchaind_init,ourwallet_pubkey,pubkey, |
| 32 | # We need these two for commit number obscurer |
| 33 | msgdata,onchaind_init,opener,enum side, |
| 34 | msgdata,onchaind_init,local_basepoints,basepoints, |
| 35 | msgdata,onchaind_init,remote_basepoints,basepoints, |
| 36 | msgdata,onchaind_init,tx_parts,tx_parts, |
| 37 | msgdata,onchaind_init,locktime,u32, |
| 38 | msgdata,onchaind_init,tx_blockheight,u32, |
| 39 | msgdata,onchaind_init,reasonable_depth,u32, |
| 40 | msgdata,onchaind_init,num_htlc_sigs,u16, |
| 41 | msgdata,onchaind_init,htlc_signature,bitcoin_signature,num_htlc_sigs |
| 42 | msgdata,onchaind_init,min_possible_feerate,u32, |
| 43 | msgdata,onchaind_init,max_possible_feerate,u32, |
| 44 | msgdata,onchaind_init,possible_remote_per_commit_point,?pubkey, |
| 45 | msgdata,onchaind_init,local_funding_pubkey,pubkey, |
| 46 | msgdata,onchaind_init,remote_funding_pubkey,pubkey, |
| 47 | msgdata,onchaind_init,local_static_remotekey_start,u64, |
| 48 | msgdata,onchaind_init,remote_static_remotekey_start,u64, |
| 49 | msgdata,onchaind_init,option_anchor_outputs,bool, |
| 50 | msgdata,onchaind_init,option_anchors_zero_fee_htlc_tx,bool, |
| 51 | # We need this for BIP125 rule 4 |
| 52 | msgdata,onchaind_init,min_relay_feerate,u32, |
| 53 | # This says we're ready; give us htlcs and preimages. |
| 54 | msgtype,onchaind_init_reply,5101 |
| 55 | msgdata,onchaind_init_reply,commit_num,u64, |
| 56 | #include <onchaind/onchaind_wire.h> |
| 57 | msgtype,onchaind_htlcs,5002 |
| 58 | msgdata,onchaind_htlcs,num_htlcs,u32, |
| 59 | msgdata,onchaind_htlcs,htlc,htlc_stub,num_htlcs |
| 60 | # If it's not in the commitment tx, tell us (immediately or htlc_missing_depth) |
| 61 | msgdata,onchaind_htlcs,tell_if_missing,bool,num_htlcs |
| 62 | msgdata,onchaind_htlcs,tell_immediately,bool,num_htlcs |
| 63 | # master->onchaind: Notifier that an output has been spent by input_num of tx. |
| 64 | msgtype,onchaind_spent,5004 |
| 65 | msgdata,onchaind_spent,tx,tx_parts, |
| 66 | msgdata,onchaind_spent,input_num,u32, |
| 67 | msgdata,onchaind_spent,blockheight,u32, |
| 68 | # master->onchaind: We will receive more than one of these, as depth changes. |
| 69 | msgtype,onchaind_depth,5005 |
| 70 | msgdata,onchaind_depth,txid,bitcoin_txid, |
| 71 | msgdata,onchaind_depth,depth,u32, |
| 72 | # onchaind->master: We don't want to watch this tx, or its outputs |
| 73 | msgtype,onchaind_unwatch_tx,5006 |
| 74 | msgdata,onchaind_unwatch_tx,txid,bitcoin_txid, |
| 75 | # master->onchaind: We know HTLC preimage |
| 76 | msgtype,onchaind_known_preimage,5007 |
| 77 | msgdata,onchaind_known_preimage,preimage,preimage, |
| 78 | # onchaind->master: We discovered HTLC preimage |
| 79 | msgtype,onchaind_extracted_preimage,5008 |
| 80 | msgdata,onchaind_extracted_preimage,preimage,preimage, |
| 81 | # onchaind->master: this HTLC was missing from commit tx. |
| 82 | msgtype,onchaind_missing_htlc_output,5009 |
| 83 | msgdata,onchaind_missing_htlc_output,htlc,htlc_stub, |
| 84 | # onchaind->master: this HTLC has timed out (after reasonable_depth) |
| 85 | msgtype,onchaind_htlc_timeout,5010 |
| 86 | msgdata,onchaind_htlc_timeout,htlc,htlc_stub, |
| 87 | # onchaind->master: this peer can be forgotten |
| 88 | msgtype,onchaind_all_irrevocably_resolved,5011 |
| 89 | # onchaind->master: hey, I identified an UTXO you'll want to track |
| 90 | msgtype,onchaind_add_utxo,5012 |
| 91 | msgdata,onchaind_add_utxo,prev_out,bitcoin_outpoint, |
| 92 | msgdata,onchaind_add_utxo,per_commit_point,?pubkey, |
| 93 | msgdata,onchaind_add_utxo,value,amount_sat, |
| 94 | msgdata,onchaind_add_utxo,blockheight,u32, |
| 95 | msgdata,onchaind_add_utxo,len,u16, |
| 96 | msgdata,onchaind_add_utxo,scriptpubkey,u8,len |
| 97 | msgdata,onchaind_add_utxo,csv_lock,u32, |
| 98 | # master -> onchaind: do you have a memleak? |
| 99 | msgtype,onchaind_dev_memleak,5033 |
| 100 | msgtype,onchaind_dev_memleak_reply,5133 |
| 101 | msgdata,onchaind_dev_memleak_reply,leak,bool, |
| 102 | # Tell the main daemon what we've been watching, mainly used for transactions |
| 103 | # that we tracked automatically but only onchaind knows how to classify their |
| 104 | # transactions. |
| 105 | msgtype,onchaind_annotate_txout,5035 |
| 106 | msgdata,onchaind_annotate_txout,outpoint,bitcoin_outpoint, |
| 107 | msgdata,onchaind_annotate_txout,type,enum wallet_tx_type, |
| 108 | msgtype,onchaind_annotate_txin,5036 |
| 109 | msgdata,onchaind_annotate_txin,txid,bitcoin_txid, |
| 110 | msgdata,onchaind_annotate_txin,innum,u32, |
| 111 | msgdata,onchaind_annotate_txin,type,enum wallet_tx_type, |
| 112 | msgtype,onchaind_notify_coin_mvt,5037 |
| 113 | msgdata,onchaind_notify_coin_mvt,mvt,chain_coin_mvt, |
| 114 | # We tell lightningd to create, sign and broadcast this tx: |
| 115 | msgtype,onchaind_spend_to_us,5040 |
| 116 | msgdata,onchaind_spend_to_us,outpoint,bitcoin_outpoint, |
| 117 | msgdata,onchaind_spend_to_us,outpoint_amount,amount_sat, |
| 118 | msgdata,onchaind_spend_to_us,minblock,u32, |
| 119 | msgdata,onchaind_spend_to_us,commit_num,u64, |
| 120 | msgdata,onchaind_spend_to_us,wscript_len,u32, |
| 121 | msgdata,onchaind_spend_to_us,wscript,u8,wscript_len |
| 122 | # We tell lightningd to create, sign and broadcast this penalty tx: |
| 123 | msgtype,onchaind_spend_penalty,5041 |
| 124 | msgdata,onchaind_spend_penalty,outpoint,bitcoin_outpoint, |
| 125 | msgdata,onchaind_spend_penalty,outpoint_amount,amount_sat, |
| 126 | msgdata,onchaind_spend_penalty,remote_per_commitment_secret,secret, |
| 127 | msgdata,onchaind_spend_penalty,stack_elem_len,u16, |
| 128 | msgdata,onchaind_spend_penalty,stack_elem,u8,stack_elem_len |
| 129 | msgdata,onchaind_spend_penalty,wscript_len,u32, |
| 130 | msgdata,onchaind_spend_penalty,wscript,u8,wscript_len |
| 131 | # We tell lightningd to create, sign and broadcast this htlc_success tx: |
| 132 | msgtype,onchaind_spend_htlc_success,5042 |
| 133 | msgdata,onchaind_spend_htlc_success,outpoint,bitcoin_outpoint, |
| 134 | msgdata,onchaind_spend_htlc_success,outpoint_amount,amount_sat, |
| 135 | msgdata,onchaind_spend_htlc_success,fee,amount_sat, |
| 136 | msgdata,onchaind_spend_htlc_success,htlc_id,u64, |
| 137 | msgdata,onchaind_spend_htlc_success,commit_num,u64, |
| 138 | msgdata,onchaind_spend_htlc_success,remote_htlc_sig,bitcoin_signature, |
| 139 | msgdata,onchaind_spend_htlc_success,preimage,preimage, |
| 140 | msgdata,onchaind_spend_htlc_success,wscript_len,u32, |
| 141 | msgdata,onchaind_spend_htlc_success,wscript,u8,wscript_len |
| 142 | msgdata,onchaind_spend_htlc_success,htlc_wscript_len,u32, |
| 143 | msgdata,onchaind_spend_htlc_success,htlc_wscript,u8,htlc_wscript_len |
| 144 | # We tell lightningd to create, sign and broadcast this HTLC redepmtion: |
| 145 | msgtype,onchaind_spend_fulfill,5043 |
| 146 | msgdata,onchaind_spend_fulfill,outpoint,bitcoin_outpoint, |
| 147 | msgdata,onchaind_spend_fulfill,outpoint_amount,amount_sat, |
| 148 | msgdata,onchaind_spend_fulfill,htlc_id,u64, |
| 149 | msgdata,onchaind_spend_fulfill,remote_per_commitment_point,pubkey, |
| 150 | msgdata,onchaind_spend_fulfill,preimage,preimage, |
| 151 | msgdata,onchaind_spend_fulfill,wscript_len,u32, |
| 152 | msgdata,onchaind_spend_fulfill,wscript,u8,wscript_len |
| 153 | # We tell lightningd to create, sign and broadcast this htlc_timeout tx: |
| 154 | msgtype,onchaind_spend_htlc_timeout,5044 |
| 155 | msgdata,onchaind_spend_htlc_timeout,outpoint,bitcoin_outpoint, |
| 156 | msgdata,onchaind_spend_htlc_timeout,outpoint_amount,amount_sat, |
| 157 | msgdata,onchaind_spend_htlc_timeout,fee,amount_sat, |
| 158 | msgdata,onchaind_spend_htlc_timeout,htlc_id,u64, |
| 159 | msgdata,onchaind_spend_htlc_timeout,cltv_expiry,u32, |
| 160 | msgdata,onchaind_spend_htlc_timeout,commit_num,u64, |
| 161 | msgdata,onchaind_spend_htlc_timeout,remote_htlc_sig,bitcoin_signature, |
| 162 | msgdata,onchaind_spend_htlc_timeout,wscript_len,u32, |
| 163 | msgdata,onchaind_spend_htlc_timeout,wscript,u8,wscript_len |
| 164 | msgdata,onchaind_spend_htlc_timeout,htlc_wscript_len,u32, |
| 165 | msgdata,onchaind_spend_htlc_timeout,htlc_wscript,u8,htlc_wscript_len |
| 166 | # We tell lightningd to create, sign and broadcast this tx to collect our |
| 167 | # expired htlc in their unilateral close: |
| 168 | msgtype,onchaind_spend_htlc_expired,5045 |
| 169 | msgdata,onchaind_spend_htlc_expired,outpoint,bitcoin_outpoint, |
| 170 | msgdata,onchaind_spend_htlc_expired,outpoint_amount,amount_sat, |
| 171 | msgdata,onchaind_spend_htlc_expired,htlc_id,u64, |
| 172 | msgdata,onchaind_spend_htlc_expired,cltv_expiry,u32, |
| 173 | msgdata,onchaind_spend_htlc_expired,remote_per_commitment_point,pubkey, |
| 174 | msgdata,onchaind_spend_htlc_expired,wscript_len,u32, |
| 175 | msgdata,onchaind_spend_htlc_expired,wscript,u8,wscript_len |
| 176 | subtype,onchain_witness_element |
| 177 | subtypedata,onchain_witness_element,is_signature,bool, |
| 178 | subtypedata,onchain_witness_element,len,u32, |
| 179 | subtypedata,onchain_witness_element,witness,u8,len |
| 180 | # lightningd replies; if it considers it uneconomic, it tells onchaind |
| 181 | # so it doesn't wait forever! |
| 182 | msgtype,onchaind_spend_created,5140 |
| 183 | msgdata,onchaind_spend_created,expect_to_succeed,bool, |
| 184 | msgdata,onchaind_spend_created,num_witnesses,u32, |
| 185 | msgdata,onchaind_spend_created,witness,onchain_witness_element,num_witnesses |