- let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone(); // ChannelManager : 3 (commitment tx + HTLC-Sucess * 2), ChannelMonitor : 1 (HTLC-Success)
- assert_eq!(node_txn.len(), 4);
- check_spends!(node_txn[0], commitment_tx[0]);
- assert_eq!(node_txn[0].input.len(), 2);
- assert_eq!(node_txn[0].input[0].witness.last().unwrap().len(), OFFERED_HTLC_SCRIPT_WEIGHT);
- assert_eq!(node_txn[0].input[1].witness.last().unwrap().len(), OFFERED_HTLC_SCRIPT_WEIGHT);
- assert_eq!(node_txn[0].lock_time, 0);
- assert!(node_txn[0].output[0].script_pubkey.is_v0_p2wpkh()); // direct payment
- check_spends!(node_txn[1], chan_1.3);
- assert_eq!(node_txn[1].input[0].witness.clone().last().unwrap().len(), 71);
- check_spends!(node_txn[2], node_txn[1]);
- check_spends!(node_txn[3], node_txn[1]);
+ let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
+ assert_eq!(node_txn.len(), 6); // ChannelManager : 3 (commitment tx + HTLC-Sucess * 2), ChannelMonitor : 3 (HTLC-Success, 2* RBF bumps of above HTLC txn)
+ let commitment_spend =
+ if node_txn[0].input[0].previous_output.txid == node_a_commitment_tx[0].txid() {
+ check_spends!(node_txn[1], commitment_tx[0]);
+ check_spends!(node_txn[2], commitment_tx[0]);
+ assert_ne!(node_txn[1].input[0].previous_output.vout, node_txn[2].input[0].previous_output.vout);
+ &node_txn[0]
+ } else {
+ check_spends!(node_txn[0], commitment_tx[0]);
+ check_spends!(node_txn[1], commitment_tx[0]);
+ assert_ne!(node_txn[0].input[0].previous_output.vout, node_txn[1].input[0].previous_output.vout);
+ &node_txn[2]
+ };
+
+ check_spends!(commitment_spend, node_a_commitment_tx[0]);
+ assert_eq!(commitment_spend.input.len(), 2);
+ assert_eq!(commitment_spend.input[0].witness.last().unwrap().len(), OFFERED_HTLC_SCRIPT_WEIGHT);
+ assert_eq!(commitment_spend.input[1].witness.last().unwrap().len(), OFFERED_HTLC_SCRIPT_WEIGHT);
+ assert_eq!(commitment_spend.lock_time, 0);
+ assert!(commitment_spend.output[0].script_pubkey.is_v0_p2wpkh()); // direct payment
+ check_spends!(node_txn[3], chan_1.3);
+ assert_eq!(node_txn[3].input[0].witness.clone().last().unwrap().len(), 71);
+ check_spends!(node_txn[4], node_txn[3]);
+ check_spends!(node_txn[5], node_txn[3]);