Add logging of HTLC outputs resolved by remote peer justice tx
authorAntoine Riard <ariard@student.42.fr>
Mon, 3 Dec 2018 02:27:26 +0000 (21:27 -0500)
committerMatt Corallo <git@bluematt.me>
Fri, 14 Dec 2018 22:00:51 +0000 (17:00 -0500)
In case of broadcast of revoked local commitment tx, we may be
interested that we've screwed up

src/ln/channelmonitor.rs

index b1e7df29cddfa5bcd3a2394453310a97dbb1e176..0ba2f0ba452abc511e7eeb0d922822461d91cec3 100644 (file)
@@ -1813,7 +1813,10 @@ impl ChannelMonitor {
                        // to broadcast solving backward
                        if let Some((source, payment_hash)) = payment_data {
                                let mut payment_preimage = PaymentPreimage([0; 32]);
-                               if input.witness.len() == 5 && input.witness[4].len() == ACCEPTED_HTLC_SCRIPT_WEIGHT {
+                               if (input.witness.len() == 3 && input.witness[2].len() == OFFERED_HTLC_SCRIPT_WEIGHT && input.witness[1].len() == 33)
+                                       || (input.witness.len() == 3 && input.witness[2].len() == ACCEPTED_HTLC_SCRIPT_WEIGHT && input.witness[1].len() == 33) {
+                                       log_error!(self, "Remote used revocation sig to take a {} HTLC output at index {} from commitment_tx {}", if input.witness[2].len() == OFFERED_HTLC_SCRIPT_WEIGHT { "offered" } else { "accepted" }, input.previous_output.vout, input.previous_output.txid);
+                               } else if input.witness.len() == 5 && input.witness[4].len() == ACCEPTED_HTLC_SCRIPT_WEIGHT {
                                        payment_preimage.0.copy_from_slice(&tx.input[0].witness[3]);
                                        htlc_updated.push((source, Some(payment_preimage), payment_hash));
                                } else if input.witness.len() == 3 && input.witness[2].len() == OFFERED_HTLC_SCRIPT_WEIGHT {