Skip to content

Commit eb3febb

Browse files
committed
Remove channel_value_satoshis from SignerProvider
Now that channel_value_satoshis has been moved to ChannelTransactionParameters, it no longer needs to be used when deriving a signer. This is a breaking API change, though InMemorySigner did not make use of channel_value_satoshis when being derived.
1 parent 6d5ed27 commit eb3febb

File tree

10 files changed

+46
-110
lines changed

10 files changed

+46
-110
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -356,16 +356,12 @@ impl SignerProvider for KeyProvider {
356356
#[cfg(taproot)]
357357
type TaprootSigner = TestChannelSigner;
358358

359-
fn generate_channel_keys_id(
360-
&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128,
361-
) -> [u8; 32] {
359+
fn generate_channel_keys_id(&self, _inbound: bool, _user_channel_id: u128) -> [u8; 32] {
362360
let id = self.rand_bytes_id.fetch_add(1, atomic::Ordering::Relaxed) as u8;
363361
[id; 32]
364362
}
365363

366-
fn derive_channel_signer(
367-
&self, channel_value_satoshis: u64, channel_keys_id: [u8; 32],
368-
) -> Self::EcdsaSigner {
364+
fn derive_channel_signer(&self, channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
369365
let secp_ctx = Secp256k1::signing_only();
370366
let id = channel_keys_id[0];
371367
#[rustfmt::skip]
@@ -377,7 +373,6 @@ impl SignerProvider for KeyProvider {
377373
SecretKey::from_slice(&[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, self.node_secret[31]]).unwrap(),
378374
SecretKey::from_slice(&[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, self.node_secret[31]]).unwrap(),
379375
[id, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, self.node_secret[31]],
380-
channel_value_satoshis,
381376
channel_keys_id,
382377
channel_keys_id,
383378
);

fuzz/src/full_stack.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -427,19 +427,15 @@ impl SignerProvider for KeyProvider {
427427
#[cfg(taproot)]
428428
type TaprootSigner = TestChannelSigner;
429429

430-
fn generate_channel_keys_id(
431-
&self, inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128,
432-
) -> [u8; 32] {
430+
fn generate_channel_keys_id(&self, inbound: bool, _user_channel_id: u128) -> [u8; 32] {
433431
let ctr = self.counter.fetch_add(1, Ordering::Relaxed) as u8;
434432
self.signer_state
435433
.borrow_mut()
436434
.insert(ctr, (inbound, Arc::new(Mutex::new(EnforcementState::new()))));
437435
[ctr; 32]
438436
}
439437

440-
fn derive_channel_signer(
441-
&self, channel_value_satoshis: u64, channel_keys_id: [u8; 32],
442-
) -> Self::EcdsaSigner {
438+
fn derive_channel_signer(&self, channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
443439
let secp_ctx = Secp256k1::signing_only();
444440
let ctr = channel_keys_id[0];
445441
let (inbound, state) = self.signer_state.borrow().get(&ctr).unwrap().clone();
@@ -476,7 +472,6 @@ impl SignerProvider for KeyProvider {
476472
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
477473
0, 0, 0, 0, 0, 6, ctr,
478474
],
479-
channel_value_satoshis,
480475
channel_keys_id,
481476
channel_keys_id,
482477
)
@@ -512,7 +507,6 @@ impl SignerProvider for KeyProvider {
512507
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513508
0, 0, 0, 0, 0, 12, ctr,
514509
],
515-
channel_value_satoshis,
516510
channel_keys_id,
517511
channel_keys_id,
518512
)

fuzz/src/onion_message.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -253,15 +253,11 @@ impl SignerProvider for KeyProvider {
253253
#[cfg(taproot)]
254254
type TaprootSigner = TestChannelSigner;
255255

256-
fn generate_channel_keys_id(
257-
&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128,
258-
) -> [u8; 32] {
256+
fn generate_channel_keys_id(&self, _inbound: bool, _user_channel_id: u128) -> [u8; 32] {
259257
unreachable!()
260258
}
261259

262-
fn derive_channel_signer(
263-
&self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32],
264-
) -> Self::EcdsaSigner {
260+
fn derive_channel_signer(&self, _channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
265261
unreachable!()
266262
}
267263

lightning/src/chain/channelmonitor.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5401,7 +5401,6 @@ mod tests {
54015401
SecretKey::from_slice(&[41; 32]).unwrap(),
54025402
SecretKey::from_slice(&[41; 32]).unwrap(),
54035403
[41; 32],
5404-
0,
54055404
[0; 32],
54065405
[0; 32],
54075406
);
@@ -5654,7 +5653,6 @@ mod tests {
56545653
SecretKey::from_slice(&[41; 32]).unwrap(),
56555654
SecretKey::from_slice(&[41; 32]).unwrap(),
56565655
[41; 32],
5657-
0,
56585656
[0; 32],
56595657
[0; 32],
56605658
);

lightning/src/chain/onchaintx.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ impl<'a, 'b, ES: EntropySource, SP: SignerProvider> ReadableArgs<(&'a ES, &'b SP
386386
bytes_read += bytes_to_read;
387387
}
388388

389-
let signer = signer_provider.derive_channel_signer(channel_value_satoshis, channel_keys_id);
389+
let signer = signer_provider.derive_channel_signer(channel_keys_id);
390390

391391
let pending_claim_requests_len: u64 = Readable::read(reader)?;
392392
let mut pending_claim_requests = hash_map_with_capacity(cmp::min(pending_claim_requests_len as usize, MAX_ALLOC_SIZE / 128));
@@ -1317,7 +1317,6 @@ mod tests {
13171317
SecretKey::from_slice(&[41; 32]).unwrap(),
13181318
SecretKey::from_slice(&[41; 32]).unwrap(),
13191319
[41; 32],
1320-
0,
13211320
[0; 32],
13221321
[0; 32],
13231322
);

lightning/src/events/bump_transaction.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,7 @@ impl AnchorDescriptor {
9797
where
9898
SP::Target: SignerProvider<EcdsaSigner= S>
9999
{
100-
signer_provider.derive_channel_signer(
101-
self.channel_derivation_parameters.value_satoshis,
102-
self.channel_derivation_parameters.keys_id,
103-
)
100+
signer_provider.derive_channel_signer(self.channel_derivation_parameters.keys_id)
104101
}
105102
}
106103

lightning/src/ln/chan_utils.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1939,8 +1939,8 @@ mod tests {
19391939
let seed = [42; 32];
19401940
let network = Network::Testnet;
19411941
let keys_provider = test_utils::TestKeysInterface::new(&seed, network);
1942-
let signer = keys_provider.derive_channel_signer(3000, keys_provider.generate_channel_keys_id(false, 1_000_000, 0));
1943-
let counterparty_signer = keys_provider.derive_channel_signer(3000, keys_provider.generate_channel_keys_id(true, 1_000_000, 1));
1942+
let signer = keys_provider.derive_channel_signer(keys_provider.generate_channel_keys_id(false, 0));
1943+
let counterparty_signer = keys_provider.derive_channel_signer(keys_provider.generate_channel_keys_id(true, 1));
19441944
let delayed_payment_base = &signer.pubkeys().delayed_payment_basepoint;
19451945
let per_commitment_secret = SecretKey::from_slice(&<Vec<u8>>::from_hex("1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100").unwrap()[..]).unwrap();
19461946
let per_commitment_point = PublicKey::from_secret_key(&secp_ctx, &per_commitment_secret);

lightning/src/ln/channel.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2094,7 +2094,7 @@ trait InitialRemoteCommitmentReceiver<SP: Deref> where SP::Target: SignerProvide
20942094
let funding_txo_script = funding_redeemscript.to_p2wsh();
20952095
let obscure_factor = get_commitment_transaction_number_obscure_factor(&funding.get_holder_pubkeys().payment_point, &funding.get_counterparty_pubkeys().payment_point, funding.is_outbound());
20962096
let shutdown_script = context.shutdown_scriptpubkey.clone().map(|script| script.into_inner());
2097-
let monitor_signer = signer_provider.derive_channel_signer(funding.get_value_satoshis(), context.channel_keys_id);
2097+
let monitor_signer = signer_provider.derive_channel_signer(context.channel_keys_id);
20982098
// TODO(RBF): When implementing RBF, the funding_txo passed here must only update
20992099
// ChannelMonitorImp::first_confirmed_funding_txo during channel establishment, not splicing
21002100
let channel_monitor = ChannelMonitor::new(context.secp_ctx.clone(), monitor_signer,
@@ -2388,8 +2388,8 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
23882388

23892389
let channel_value_satoshis = our_funding_satoshis.saturating_add(open_channel_fields.funding_satoshis);
23902390

2391-
let channel_keys_id = signer_provider.generate_channel_keys_id(true, channel_value_satoshis, user_id);
2392-
let holder_signer = signer_provider.derive_channel_signer(channel_value_satoshis, channel_keys_id);
2391+
let channel_keys_id = signer_provider.generate_channel_keys_id(true, user_id);
2392+
let holder_signer = signer_provider.derive_channel_signer(channel_keys_id);
23932393
let pubkeys = holder_signer.pubkeys().clone();
23942394

23952395
if config.channel_handshake_config.our_to_self_delay < BREAKDOWN_TIMEOUT {
@@ -8975,8 +8975,8 @@ impl<SP: Deref> OutboundV1Channel<SP> where SP::Target: SignerProvider {
89758975
implemention limit dust_limit_satoshis {}", holder_selected_channel_reserve_satoshis) });
89768976
}
89778977

8978-
let channel_keys_id = signer_provider.generate_channel_keys_id(false, channel_value_satoshis, user_id);
8979-
let holder_signer = signer_provider.derive_channel_signer(channel_value_satoshis, channel_keys_id);
8978+
let channel_keys_id = signer_provider.generate_channel_keys_id(false, user_id);
8979+
let holder_signer = signer_provider.derive_channel_signer(channel_keys_id);
89808980
let pubkeys = holder_signer.pubkeys().clone();
89818981

89828982
let (funding, context) = ChannelContext::new_for_outbound_channel(
@@ -9528,8 +9528,8 @@ impl<SP: Deref> PendingV2Channel<SP> where SP::Target: SignerProvider {
95289528
F::Target: FeeEstimator,
95299529
L::Target: Logger,
95309530
{
9531-
let channel_keys_id = signer_provider.generate_channel_keys_id(false, funding_satoshis, user_id);
9532-
let holder_signer = signer_provider.derive_channel_signer(funding_satoshis, channel_keys_id);
9531+
let channel_keys_id = signer_provider.generate_channel_keys_id(false, user_id);
9532+
let holder_signer = signer_provider.derive_channel_signer(channel_keys_id);
95339533
let pubkeys = holder_signer.pubkeys().clone();
95349534

95359535
let temporary_channel_id = Some(ChannelId::temporary_v2_from_revocation_basepoint(&pubkeys.revocation_basepoint));
@@ -10598,7 +10598,7 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
1059810598
});
1059910599

1060010600
let (channel_keys_id, holder_signer) = if let Some(channel_keys_id) = channel_keys_id {
10601-
let holder_signer = signer_provider.derive_channel_signer(channel_value_satoshis, channel_keys_id);
10601+
let holder_signer = signer_provider.derive_channel_signer(channel_keys_id);
1060210602
(channel_keys_id, holder_signer)
1060310603
} else {
1060410604
// `keys_data` can be `None` if we had corrupted data.
@@ -10951,11 +10951,11 @@ mod tests {
1095110951
#[cfg(taproot)]
1095210952
type TaprootSigner = InMemorySigner;
1095310953

10954-
fn generate_channel_keys_id(&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128) -> [u8; 32] {
10954+
fn generate_channel_keys_id(&self, _inbound: bool, _user_channel_id: u128) -> [u8; 32] {
1095510955
self.signer.channel_keys_id()
1095610956
}
1095710957

10958-
fn derive_channel_signer(&self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
10958+
fn derive_channel_signer(&self, _channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
1095910959
self.signer.clone()
1096010960
}
1096110961

0 commit comments

Comments
 (0)