Skip to content

Commit d77e40f

Browse files
committed
Drop requirement that ChannelKeys expose delayed_payment_basepoint
1 parent d9f5df9 commit d77e40f

File tree

4 files changed

+7
-11
lines changed

4 files changed

+7
-11
lines changed

lightning/src/chain/keysinterface.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,6 @@ impl Readable for SpendableOutputDescriptor {
195195
// TODO: We should remove Clone by instead requesting a new ChannelKeys copy when we create
196196
// ChannelMonitors instead of expecting to clone the one out of the Channel into the monitors.
197197
pub trait ChannelKeys : Send+Clone {
198-
/// Gets the local secret key used in HTLC-Success/HTLC-Timeout txn and to_local output
199-
fn delayed_payment_base_key<'a>(&'a self) -> &'a SecretKey;
200198
/// Gets the local htlc secret key used in commitment tx htlc outputs
201199
fn htlc_base_key<'a>(&'a self) -> &'a SecretKey;
202200
/// Gets the commitment seed
@@ -408,7 +406,6 @@ impl InMemoryChannelKeys {
408406
}
409407

410408
impl ChannelKeys for InMemoryChannelKeys {
411-
fn delayed_payment_base_key(&self) -> &SecretKey { &self.delayed_payment_base_key }
412409
fn htlc_base_key(&self) -> &SecretKey { &self.htlc_base_key }
413410
fn commitment_seed(&self) -> &[u8; 32] { &self.commitment_seed }
414411
fn pubkeys<'a>(&'a self) -> &'a ChannelPublicKeys { &self.local_channel_pubkeys }

lightning/src/ln/channel.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,11 +1094,11 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
10941094
/// TODO Some magic rust shit to compile-time check this?
10951095
fn build_local_transaction_keys(&self, commitment_number: u64) -> Result<TxCreationKeys, ChannelError> {
10961096
let per_commitment_point = PublicKey::from_secret_key(&self.secp_ctx, &self.build_local_commitment_secret(commitment_number));
1097-
let delayed_payment_base = PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.delayed_payment_base_key());
1097+
let delayed_payment_base = &self.local_keys.pubkeys().delayed_payment_basepoint;
10981098
let htlc_basepoint = PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.htlc_base_key());
10991099
let their_pubkeys = self.their_pubkeys.as_ref().unwrap();
11001100

1101-
Ok(secp_check!(TxCreationKeys::new(&self.secp_ctx, &per_commitment_point, &delayed_payment_base, &htlc_basepoint, &their_pubkeys.revocation_basepoint, &their_pubkeys.htlc_basepoint), "Local tx keys generation got bogus keys"))
1101+
Ok(secp_check!(TxCreationKeys::new(&self.secp_ctx, &per_commitment_point, delayed_payment_base, &htlc_basepoint, &their_pubkeys.revocation_basepoint, &their_pubkeys.htlc_basepoint), "Local tx keys generation got bogus keys"))
11021102
}
11031103

11041104
#[inline]
@@ -3317,7 +3317,7 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
33173317
funding_pubkey: local_keys.funding_pubkey,
33183318
revocation_basepoint: local_keys.revocation_basepoint,
33193319
payment_point: local_keys.payment_point,
3320-
delayed_payment_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.delayed_payment_base_key()),
3320+
delayed_payment_basepoint: local_keys.delayed_payment_basepoint,
33213321
htlc_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.htlc_base_key()),
33223322
first_per_commitment_point: PublicKey::from_secret_key(&self.secp_ctx, &local_commitment_secret),
33233323
channel_flags: if self.config.announced_channel {1} else {0},
@@ -3351,7 +3351,7 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
33513351
funding_pubkey: local_keys.funding_pubkey,
33523352
revocation_basepoint: local_keys.revocation_basepoint,
33533353
payment_point: local_keys.payment_point,
3354-
delayed_payment_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.delayed_payment_base_key()),
3354+
delayed_payment_basepoint: local_keys.delayed_payment_basepoint,
33553355
htlc_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.htlc_base_key()),
33563356
first_per_commitment_point: PublicKey::from_secret_key(&self.secp_ctx, &local_commitment_secret),
33573357
shutdown_scriptpubkey: OptionalField::Present(if self.config.commit_upfront_shutdown_pubkey { self.get_closing_scriptpubkey() } else { Builder::new().into_script() })
@@ -4476,11 +4476,11 @@ mod tests {
44764476
// We can't just use build_local_transaction_keys here as the per_commitment_secret is not
44774477
// derived from a commitment_seed, so instead we copy it here and call
44784478
// build_commitment_transaction.
4479-
let delayed_payment_base = PublicKey::from_secret_key(&secp_ctx, chan.local_keys.delayed_payment_base_key());
4479+
let delayed_payment_base = &chan.local_keys.pubkeys().delayed_payment_basepoint;
44804480
let per_commitment_secret = SecretKey::from_slice(&hex::decode("1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100").unwrap()[..]).unwrap();
44814481
let per_commitment_point = PublicKey::from_secret_key(&secp_ctx, &per_commitment_secret);
44824482
let htlc_basepoint = PublicKey::from_secret_key(&secp_ctx, chan.local_keys.htlc_base_key());
4483-
let keys = TxCreationKeys::new(&secp_ctx, &per_commitment_point, &delayed_payment_base, &htlc_basepoint, &their_pubkeys.revocation_basepoint, &their_pubkeys.htlc_basepoint).unwrap();
4483+
let keys = TxCreationKeys::new(&secp_ctx, &per_commitment_point, delayed_payment_base, &htlc_basepoint, &their_pubkeys.revocation_basepoint, &their_pubkeys.htlc_basepoint).unwrap();
44844484

44854485
chan.their_pubkeys = Some(their_pubkeys);
44864486

lightning/src/ln/functional_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4321,7 +4321,7 @@ macro_rules! check_spendable_outputs {
43214321
};
43224322
let secp_ctx = Secp256k1::new();
43234323
let keys = $keysinterface.derive_channel_keys($chan_value, key_derivation_params.0, key_derivation_params.1);
4324-
if let Ok(delayed_payment_key) = chan_utils::derive_private_key(&secp_ctx, &per_commitment_point, keys.delayed_payment_base_key()) {
4324+
if let Ok(delayed_payment_key) = chan_utils::derive_private_key(&secp_ctx, &per_commitment_point, &keys.inner.delayed_payment_base_key) {
43254325

43264326
let delayed_payment_pubkey = PublicKey::from_secret_key(&secp_ctx, &delayed_payment_key);
43274327
let witness_script = chan_utils::get_revokeable_redeemscript(remote_revocation_pubkey, *to_self_delay, &delayed_payment_pubkey);

lightning/src/util/enforcing_trait_impls.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ impl EnforcingChannelKeys {
5050
}
5151

5252
impl ChannelKeys for EnforcingChannelKeys {
53-
fn delayed_payment_base_key(&self) -> &SecretKey { self.inner.delayed_payment_base_key() }
5453
fn htlc_base_key(&self) -> &SecretKey { self.inner.htlc_base_key() }
5554
fn commitment_seed(&self) -> &[u8; 32] { self.inner.commitment_seed() }
5655
fn pubkeys<'a>(&'a self) -> &'a ChannelPublicKeys { self.inner.pubkeys() }

0 commit comments

Comments
 (0)