@@ -977,10 +977,12 @@ impl HolderCommitmentPoint where {
977
977
where SP::Target: SignerProvider, L::Target: Logger
978
978
{
979
979
if let HolderCommitmentPoint::Uninitialized { transaction_number } = self {
980
- let current = signer.as_ref().get_per_commitment_point(*transaction_number, secp_ctx); // TODO
981
- log_trace!(logger, "Retrieved current per-commitment point {}", transaction_number);
982
- *self = HolderCommitmentPoint::PendingNext { transaction_number: *transaction_number, current };
983
- // TODO: handle error case when get_per_commitment_point becomes async
980
+ if let Ok(current) = signer.as_ref().get_per_commitment_point(*transaction_number, secp_ctx) {
981
+ log_trace!(logger, "Retrieved initial per-commitment point {}", transaction_number);
982
+ *self = HolderCommitmentPoint::PendingNext { transaction_number: *transaction_number, current };
983
+ } else {
984
+ log_trace!(logger, "Initial per-commitment point {} is pending", transaction_number);
985
+ }
984
986
}
985
987
986
988
if let HolderCommitmentPoint::Available { transaction_number, next, .. } = self {
@@ -991,10 +993,12 @@ impl HolderCommitmentPoint where {
991
993
}
992
994
993
995
if let HolderCommitmentPoint::PendingNext { transaction_number, current } = self {
994
- let next = signer.as_ref().get_per_commitment_point(*transaction_number - 1, secp_ctx); // TODO
995
- log_trace!(logger, "Retrieved next per-commitment point {}", *transaction_number - 1);
996
- *self = HolderCommitmentPoint::Available { transaction_number: *transaction_number, current: *current, next };
997
- // TODO: handle error case when get_per_commitment_point becomes async
996
+ if let Ok(next) = signer.as_ref().get_per_commitment_point(*transaction_number - 1, secp_ctx) {
997
+ log_trace!(logger, "Retrieved next per-commitment point {}", *transaction_number - 1);
998
+ *self = HolderCommitmentPoint::Available { transaction_number: *transaction_number, current: *current, next };
999
+ } else {
1000
+ log_trace!(logger, "Next per-commitment point {} is pending", transaction_number);
1001
+ }
998
1002
}
999
1003
}
1000
1004
}
@@ -5373,7 +5377,7 @@ impl<SP: Deref> Channel<SP> where
5373
5377
5374
5378
let our_commitment_transaction = INITIAL_COMMITMENT_NUMBER - self.context.holder_commitment_point.transaction_number() - 1;
5375
5379
if msg.next_remote_commitment_number > 0 {
5376
- let expected_point = self.context.holder_signer.as_ref().get_per_commitment_point(INITIAL_COMMITMENT_NUMBER - msg.next_remote_commitment_number + 1, &self.context.secp_ctx);
5380
+ let expected_point = self.context.holder_signer.as_ref().get_per_commitment_point(INITIAL_COMMITMENT_NUMBER - msg.next_remote_commitment_number + 1, &self.context.secp_ctx).expect("TODO") ;
5377
5381
let given_secret = SecretKey::from_slice(&msg.your_last_per_commitment_secret)
5378
5382
.map_err(|_| ChannelError::Close("Peer sent a garbage channel_reestablish with unparseable secret key".to_owned()))?;
5379
5383
if expected_point != PublicKey::from_secret_key(&self.context.secp_ctx, &given_secret) {
0 commit comments