@@ -2105,7 +2105,11 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
2105
2105
}
2106
2106
};
2107
2107
2108
- self.signer_pending_funding = false;
2108
+ if self.signer_pending_funding {
2109
+ log_trace!(logger, "Counterparty commitment signature ready for funding_created message: clearing signer_pending_funding");
2110
+ self.signer_pending_funding = false;
2111
+ }
2112
+
2109
2113
Some(msgs::FundingCreated {
2110
2114
temporary_channel_id: self.temporary_channel_id.unwrap(),
2111
2115
funding_txid: self.channel_transaction_parameters.funding_outpoint.as_ref().unwrap().txid,
@@ -2139,7 +2143,14 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
2139
2143
partial_signature_with_nonce: None,
2140
2144
})
2141
2145
.ok();
2142
- self.signer_pending_funding = funding_signed.is_none();
2146
+
2147
+ if funding_signed.is_none() {
2148
+ log_trace!(logger, "Counterparty commitment signature not available for funding_signed message; setting signer_pending_funding");
2149
+ self.signer_pending_funding = true;
2150
+ } else if self.signer_pending_funding {
2151
+ log_trace!(logger, "Counterparty commitment signature available for funding_signed message; clearing signer_pending_funding");
2152
+ self.signer_pending_funding = false;
2153
+ }
2143
2154
2144
2155
// We sign "counterparty" commitment transaction, allowing them to broadcast the tx if they wish.
2145
2156
(counterparty_initial_commitment_tx, funding_signed)
@@ -3980,6 +3991,13 @@ impl<SP: Deref> Channel<SP> where
3980
3991
let funding_created = if self.context.signer_pending_funding && self.context.is_outbound() {
3981
3992
self.context.get_funding_created_msg(logger)
3982
3993
} else { None };
3994
+
3995
+ log_trace!(logger, "Signer unblocked with {} commitment_update, {} funding_signed, {} funding_created, and {} channel_ready",
3996
+ if commitment_update.is_some() { "a" } else { "no" },
3997
+ if funding_signed.is_some() { "a" } else { "no" },
3998
+ if funding_created.is_some() { "a" } else { "no" },
3999
+ if channel_ready.is_some() { "a" } else { "no" });
4000
+
3983
4001
SignerResumeUpdates {
3984
4002
commitment_update,
3985
4003
funding_signed,
@@ -4057,14 +4075,21 @@ impl<SP: Deref> Channel<SP> where
4057
4075
})
4058
4076
} else { None };
4059
4077
4060
- log_trace!(logger, "Regenerated latest commitment update in channel {} with{} {} update_adds, {} update_fulfills, {} update_fails, and {} update_fail_malformeds",
4078
+ log_trace!(logger, "Regenerating latest commitment update in channel {} with{} {} update_adds, {} update_fulfills, {} update_fails, and {} update_fail_malformeds",
4061
4079
&self.context.channel_id(), if update_fee.is_some() { " update_fee," } else { "" },
4062
4080
update_add_htlcs.len(), update_fulfill_htlcs.len(), update_fail_htlcs.len(), update_fail_malformed_htlcs.len());
4081
+
4063
4082
let commitment_signed = if let Ok(update) = self.send_commitment_no_state_update(logger).map(|(cu, _)| cu) {
4064
- self.context.signer_pending_commitment_update = false;
4083
+ if self.context.signer_pending_commitment_update {
4084
+ log_trace!(logger, "Commitment update generated: clearing signer_pending_commitment_update");
4085
+ self.context.signer_pending_commitment_update = false;
4086
+ }
4065
4087
update
4066
4088
} else {
4067
- self.context.signer_pending_commitment_update = true;
4089
+ if !self.context.signer_pending_commitment_update {
4090
+ log_trace!(logger, "Commitment update awaiting signer: setting signer_pending_commitment_update");
4091
+ self.context.signer_pending_commitment_update = true;
4092
+ }
4068
4093
return Err(());
4069
4094
};
4070
4095
Ok(msgs::CommitmentUpdate {
@@ -6058,7 +6083,10 @@ impl<SP: Deref> OutboundV1Channel<SP> where SP::Target: SignerProvider {
6058
6083
6059
6084
let funding_created = self.context.get_funding_created_msg(logger);
6060
6085
if funding_created.is_none() {
6061
- self.context.signer_pending_funding = true;
6086
+ if !self.context.signer_pending_funding {
6087
+ log_trace!(logger, "funding_created awaiting signer; setting signer_pending_funding");
6088
+ self.context.signer_pending_funding = true;
6089
+ }
6062
6090
}
6063
6091
6064
6092
let channel = Channel {
0 commit comments