@@ -2116,7 +2116,11 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
2116
2116
}
2117
2117
};
2118
2118
2119
- self.signer_pending_funding = false;
2119
+ if self.signer_pending_funding {
2120
+ log_trace!(logger, "Counterparty commitment signature ready for funding_created message: clearing signer_pending_funding");
2121
+ self.signer_pending_funding = false;
2122
+ }
2123
+
2120
2124
Some(msgs::FundingCreated {
2121
2125
temporary_channel_id: self.temporary_channel_id.unwrap(),
2122
2126
funding_txid: self.channel_transaction_parameters.funding_outpoint.as_ref().unwrap().txid,
@@ -2150,7 +2154,14 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
2150
2154
partial_signature_with_nonce: None,
2151
2155
})
2152
2156
.ok();
2153
- self.signer_pending_funding = funding_signed.is_none();
2157
+
2158
+ if funding_signed.is_none() {
2159
+ log_trace!(logger, "Counterparty commitment signature not available for funding_signed message; setting signer_pending_funding");
2160
+ self.signer_pending_funding = true;
2161
+ } else if self.signer_pending_funding {
2162
+ log_trace!(logger, "Counterparty commitment signature available for funding_signed message; clearing signer_pending_funding");
2163
+ self.signer_pending_funding = false;
2164
+ }
2154
2165
2155
2166
// We sign "counterparty" commitment transaction, allowing them to broadcast the tx if they wish.
2156
2167
(counterparty_initial_commitment_tx, funding_signed)
@@ -3994,6 +4005,13 @@ impl<SP: Deref> Channel<SP> where
3994
4005
let funding_created = if self.context.signer_pending_funding && self.context.is_outbound() {
3995
4006
self.context.get_funding_created_msg(logger)
3996
4007
} else { None };
4008
+
4009
+ log_trace!(logger, "Signer unblocked with {} commitment_update, {} funding_signed, {} funding_created, and {} channel_ready",
4010
+ if commitment_update.is_some() { "a" } else { "no" },
4011
+ if funding_signed.is_some() { "a" } else { "no" },
4012
+ if funding_created.is_some() { "a" } else { "no" },
4013
+ if channel_ready.is_some() { "a" } else { "no" });
4014
+
3997
4015
SignerResumeUpdates {
3998
4016
commitment_update,
3999
4017
funding_signed,
@@ -4071,14 +4089,21 @@ impl<SP: Deref> Channel<SP> where
4071
4089
})
4072
4090
} else { None };
4073
4091
4074
- log_trace!(logger, "Regenerated latest commitment update in channel {} with{} {} update_adds, {} update_fulfills, {} update_fails, and {} update_fail_malformeds",
4092
+ log_trace!(logger, "Regenerating latest commitment update in channel {} with{} {} update_adds, {} update_fulfills, {} update_fails, and {} update_fail_malformeds",
4075
4093
&self.context.channel_id(), if update_fee.is_some() { " update_fee," } else { "" },
4076
4094
update_add_htlcs.len(), update_fulfill_htlcs.len(), update_fail_htlcs.len(), update_fail_malformed_htlcs.len());
4095
+
4077
4096
let commitment_signed = if let Ok(update) = self.send_commitment_no_state_update(logger).map(|(cu, _)| cu) {
4078
- self.context.signer_pending_commitment_update = false;
4097
+ if self.context.signer_pending_commitment_update {
4098
+ log_trace!(logger, "Commitment update generated: clearing signer_pending_commitment_update");
4099
+ self.context.signer_pending_commitment_update = false;
4100
+ }
4079
4101
update
4080
4102
} else {
4081
- self.context.signer_pending_commitment_update = true;
4103
+ if !self.context.signer_pending_commitment_update {
4104
+ log_trace!(logger, "Commitment update awaiting signer: setting signer_pending_commitment_update");
4105
+ self.context.signer_pending_commitment_update = true;
4106
+ }
4082
4107
return Err(());
4083
4108
};
4084
4109
Ok(msgs::CommitmentUpdate {
@@ -6074,7 +6099,10 @@ impl<SP: Deref> OutboundV1Channel<SP> where SP::Target: SignerProvider {
6074
6099
6075
6100
let funding_created = self.context.get_funding_created_msg(logger);
6076
6101
if funding_created.is_none() {
6077
- self.context.signer_pending_funding = true;
6102
+ if !self.context.signer_pending_funding {
6103
+ log_trace!(logger, "funding_created awaiting signer; setting signer_pending_funding");
6104
+ self.context.signer_pending_funding = true;
6105
+ }
6078
6106
}
6079
6107
6080
6108
let channel = Channel {
0 commit comments