Skip to content

Commit 0914178

Browse files
committed
Deparametrize most everything else, except create_invoice methods, to infer Signer from KeysInterface.
1 parent 464ac59 commit 0914178

File tree

11 files changed

+55
-55
lines changed

11 files changed

+55
-55
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ impl BackgroundProcessor {
510510
OMH::Target: 'static + OnionMessageHandler,
511511
RMH::Target: 'static + RoutingMessageHandler,
512512
UMH::Target: 'static + CustomMessageHandler,
513-
PS::Target: 'static + Persister<'a, <K::Target as KeysInterface>::Signer, CW, T, K, F, L, SC>,
513+
PS::Target: 'static + Persister<'a, CW, T, K, F, L, SC>,
514514
{
515515
let stop_thread = Arc::new(AtomicBool::new(false));
516516
let stop_thread_clone = stop_thread.clone();

lightning-block-sync/src/init.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,16 @@ BlockSourceResult<ValidatedBlockHeader> where B::Target: BlockSource {
6161
///
6262
/// async fn init_sync<
6363
/// B: BlockSource,
64-
/// K: KeysInterface<Signer = S>,
64+
/// K: KeysInterface,
6565
/// S: keysinterface::Sign,
6666
/// T: BroadcasterInterface,
6767
/// F: FeeEstimator,
6868
/// L: Logger,
6969
/// C: chain::Filter,
70-
/// P: chainmonitor::Persist<S>,
70+
/// P: chainmonitor::Persist<K::Signer>,
7171
/// >(
7272
/// block_source: &B,
73-
/// chain_monitor: &ChainMonitor<S, &C, &T, &F, &L, &P>,
73+
/// chain_monitor: &ChainMonitor<K::Signer, &C, &T, &F, &L, &P>,
7474
/// config: UserConfig,
7575
/// keys_manager: &K,
7676
/// tx_broadcaster: &T,
@@ -80,7 +80,7 @@ BlockSourceResult<ValidatedBlockHeader> where B::Target: BlockSource {
8080
/// ) {
8181
/// // Read a serialized channel monitor paired with the block hash when it was persisted.
8282
/// let serialized_monitor = "...";
83-
/// let (monitor_block_hash, mut monitor) = <(BlockHash, ChannelMonitor<S>)>::read(
83+
/// let (monitor_block_hash, mut monitor) = <(BlockHash, ChannelMonitor<K::Signer>)>::read(
8484
/// &mut Cursor::new(&serialized_monitor), keys_manager).unwrap();
8585
///
8686
/// // Read the channel manager paired with the block hash when it was persisted.
@@ -95,7 +95,7 @@ BlockSourceResult<ValidatedBlockHeader> where B::Target: BlockSource {
9595
/// config,
9696
/// vec![&mut monitor],
9797
/// );
98-
/// <(BlockHash, ChannelManager<&ChainMonitor<S, &C, &T, &F, &L, &P>, &T, &K, &F, &L>)>::read(
98+
/// <(BlockHash, ChannelManager<&ChainMonitor<K::Signer, &C, &T, &F, &L, &P>, &T, &K, &F, &L>)>::read(
9999
/// &mut Cursor::new(&serialized_manager), read_args).unwrap()
100100
/// };
101101
///

lightning-persister/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ extern crate libc;
2020
use bitcoin::hash_types::{BlockHash, Txid};
2121
use bitcoin::hashes::hex::FromHex;
2222
use lightning::chain::channelmonitor::ChannelMonitor;
23-
use lightning::chain::keysinterface::{Sign, KeysInterface};
23+
use lightning::chain::keysinterface::KeysInterface;
2424
use lightning::util::ser::{ReadableArgs, Writeable};
2525
use lightning::util::persist::KVStorePersister;
2626
use std::fs;
@@ -59,10 +59,10 @@ impl FilesystemPersister {
5959
}
6060

6161
/// Read `ChannelMonitor`s from disk.
62-
pub fn read_channelmonitors<Signer: Sign, K: Deref> (
62+
pub fn read_channelmonitors<K: Deref> (
6363
&self, keys_manager: K
64-
) -> Result<Vec<(BlockHash, ChannelMonitor<Signer>)>, std::io::Error>
65-
where K::Target: KeysInterface<Signer=Signer> + Sized,
64+
) -> Result<Vec<(BlockHash, ChannelMonitor<<K::Target as KeysInterface>::Signer>)>, std::io::Error>
65+
where K::Target: KeysInterface + Sized,
6666
{
6767
let mut path = PathBuf::from(&self.path_to_channel_data);
6868
path.push("monitors");
@@ -105,7 +105,7 @@ impl FilesystemPersister {
105105

106106
let contents = fs::read(&file.path())?;
107107
let mut buffer = Cursor::new(&contents);
108-
match <(BlockHash, ChannelMonitor<Signer>)>::read(&mut buffer, &*keys_manager) {
108+
match <(BlockHash, ChannelMonitor<<K::Target as KeysInterface>::Signer>)>::read(&mut buffer, &*keys_manager) {
109109
Ok((blockhash, channel_monitor)) => {
110110
if channel_monitor.get_funding_txo().0.txid != txid.unwrap() || channel_monitor.get_funding_txo().0.index != index.unwrap() {
111111
return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "ChannelMonitor was stored in the wrong file"));

lightning/src/chain/channelmonitor.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3536,8 +3536,8 @@ where
35363536

35373537
const MAX_ALLOC_SIZE: usize = 64*1024;
35383538

3539-
impl<'a, Signer: Sign, K: KeysInterface<Signer = Signer>> ReadableArgs<&'a K>
3540-
for (BlockHash, ChannelMonitor<Signer>) {
3539+
impl<'a, K: KeysInterface> ReadableArgs<&'a K>
3540+
for (BlockHash, ChannelMonitor<K::Signer>) {
35413541
fn read<R: io::Read>(reader: &mut R, keys_manager: &'a K) -> Result<Self, DecodeError> {
35423542
macro_rules! unwrap_obj {
35433543
($key: expr) => {
@@ -3721,7 +3721,7 @@ impl<'a, Signer: Sign, K: KeysInterface<Signer = Signer>> ReadableArgs<&'a K>
37213721
return Err(DecodeError::InvalidValue);
37223722
}
37233723
}
3724-
let onchain_tx_handler: OnchainTxHandler<Signer> = ReadableArgs::read(reader, keys_manager)?;
3724+
let onchain_tx_handler: OnchainTxHandler<K::Signer> = ReadableArgs::read(reader, keys_manager)?;
37253725

37263726
let lockdown_from_offchain = Readable::read(reader)?;
37273727
let holder_tx_signed = Readable::read(reader)?;

lightning/src/ln/channel.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4198,7 +4198,7 @@ impl<Signer: Sign> Channel<Signer> {
41984198
pub fn shutdown<K: Deref>(
41994199
&mut self, keys_provider: &K, their_features: &InitFeatures, msg: &msgs::Shutdown
42004200
) -> Result<(Option<msgs::Shutdown>, Option<ChannelMonitorUpdate>, Vec<(HTLCSource, PaymentHash)>), ChannelError>
4201-
where K::Target: KeysInterface<Signer = Signer>
4201+
where K::Target: KeysInterface
42024202
{
42034203
if self.channel_state & (ChannelState::PeerDisconnected as u32) == ChannelState::PeerDisconnected as u32 {
42044204
return Err(ChannelError::Close("Peer sent shutdown when we needed a channel_reestablish".to_owned()));
@@ -5803,7 +5803,7 @@ impl<Signer: Sign> Channel<Signer> {
58035803
/// holding cell HTLCs for payment failure.
58045804
pub fn get_shutdown<K: Deref>(&mut self, keys_provider: &K, their_features: &InitFeatures, target_feerate_sats_per_kw: Option<u32>)
58055805
-> Result<(msgs::Shutdown, Option<ChannelMonitorUpdate>, Vec<(HTLCSource, PaymentHash)>), APIError>
5806-
where K::Target: KeysInterface<Signer = Signer> {
5806+
where K::Target: KeysInterface {
58075807
for htlc in self.pending_outbound_htlcs.iter() {
58085808
if let OutboundHTLCState::LocalAnnounced(_) = htlc.state {
58095809
return Err(APIError::APIMisuseError{err: "Cannot begin shutdown with pending HTLCs. Process pending events first".to_owned()});
@@ -6259,8 +6259,8 @@ impl<Signer: Sign> Writeable for Channel<Signer> {
62596259
}
62606260

62616261
const MAX_ALLOC_SIZE: usize = 64*1024;
6262-
impl<'a, Signer: Sign, K: Deref> ReadableArgs<(&'a K, u32)> for Channel<Signer>
6263-
where K::Target: KeysInterface<Signer = Signer> {
6262+
impl<'a, K: Deref> ReadableArgs<(&'a K, u32)> for Channel<<K::Target as KeysInterface>::Signer>
6263+
where K::Target: KeysInterface {
62646264
fn read<R : io::Read>(reader: &mut R, args: (&'a K, u32)) -> Result<Self, DecodeError> {
62656265
let (keys_source, serialized_height) = args;
62666266
let ver = read_ver_prefix!(reader, SERIALIZATION_VERSION);

lightning/src/ln/channelmanager.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6768,10 +6768,10 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> Writeable for ChannelMana
67686768
/// which you've already broadcasted the transaction.
67696769
///
67706770
/// [`ChainMonitor`]: crate::chain::chainmonitor::ChainMonitor
6771-
pub struct ChannelManagerReadArgs<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
6772-
where M::Target: chain::Watch<Signer>,
6771+
pub struct ChannelManagerReadArgs<'a, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
6772+
where M::Target: chain::Watch<<K::Target as KeysInterface>::Signer>,
67736773
T::Target: BroadcasterInterface,
6774-
K::Target: KeysInterface<Signer = Signer>,
6774+
K::Target: KeysInterface,
67756775
F::Target: FeeEstimator,
67766776
L::Target: Logger,
67776777
{
@@ -6814,22 +6814,22 @@ pub struct ChannelManagerReadArgs<'a, Signer: 'a + Sign, M: Deref, T: Deref, K:
68146814
/// this struct.
68156815
///
68166816
/// (C-not exported) because we have no HashMap bindings
6817-
pub channel_monitors: HashMap<OutPoint, &'a mut ChannelMonitor<Signer>>,
6817+
pub channel_monitors: HashMap<OutPoint, &'a mut ChannelMonitor<<K::Target as KeysInterface>::Signer>>,
68186818
}
68196819

6820-
impl<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
6821-
ChannelManagerReadArgs<'a, Signer, M, T, K, F, L>
6822-
where M::Target: chain::Watch<Signer>,
6820+
impl<'a, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
6821+
ChannelManagerReadArgs<'a, M, T, K, F, L>
6822+
where M::Target: chain::Watch<<K::Target as KeysInterface>::Signer>,
68236823
T::Target: BroadcasterInterface,
6824-
K::Target: KeysInterface<Signer = Signer>,
6824+
K::Target: KeysInterface,
68256825
F::Target: FeeEstimator,
68266826
L::Target: Logger,
68276827
{
68286828
/// Simple utility function to create a ChannelManagerReadArgs which creates the monitor
68296829
/// HashMap for you. This is primarily useful for C bindings where it is not practical to
68306830
/// populate a HashMap directly from C.
68316831
pub fn new(keys_manager: K, fee_estimator: F, chain_monitor: M, tx_broadcaster: T, logger: L, default_config: UserConfig,
6832-
mut channel_monitors: Vec<&'a mut ChannelMonitor<Signer>>) -> Self {
6832+
mut channel_monitors: Vec<&'a mut ChannelMonitor<<K::Target as KeysInterface>::Signer>>) -> Self {
68336833
Self {
68346834
keys_manager, fee_estimator, chain_monitor, tx_broadcaster, logger, default_config,
68356835
channel_monitors: channel_monitors.drain(..).map(|monitor| { (monitor.get_funding_txo().0, monitor) }).collect()
@@ -6840,28 +6840,28 @@ impl<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
68406840
// Implement ReadableArgs for an Arc'd ChannelManager to make it a bit easier to work with the
68416841
// SipmleArcChannelManager type:
68426842
impl<'a, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
6843-
ReadableArgs<ChannelManagerReadArgs<'a, <K::Target as KeysInterface>::Signer, M, T, K, F, L>> for (BlockHash, Arc<ChannelManager<M, T, K, F, L>>)
6843+
ReadableArgs<ChannelManagerReadArgs<'a, M, T, K, F, L>> for (BlockHash, Arc<ChannelManager<M, T, K, F, L>>)
68446844
where M::Target: chain::Watch<<K::Target as KeysInterface>::Signer>,
68456845
T::Target: BroadcasterInterface,
68466846
K::Target: KeysInterface,
68476847
F::Target: FeeEstimator,
68486848
L::Target: Logger,
68496849
{
6850-
fn read<R: io::Read>(reader: &mut R, args: ChannelManagerReadArgs<'a, <K::Target as KeysInterface>::Signer, M, T, K, F, L>) -> Result<Self, DecodeError> {
6850+
fn read<R: io::Read>(reader: &mut R, args: ChannelManagerReadArgs<'a, M, T, K, F, L>) -> Result<Self, DecodeError> {
68516851
let (blockhash, chan_manager) = <(BlockHash, ChannelManager<M, T, K, F, L>)>::read(reader, args)?;
68526852
Ok((blockhash, Arc::new(chan_manager)))
68536853
}
68546854
}
68556855

68566856
impl<'a, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
6857-
ReadableArgs<ChannelManagerReadArgs<'a, <K::Target as KeysInterface>::Signer, M, T, K, F, L>> for (BlockHash, ChannelManager<M, T, K, F, L>)
6857+
ReadableArgs<ChannelManagerReadArgs<'a, M, T, K, F, L>> for (BlockHash, ChannelManager<M, T, K, F, L>)
68586858
where M::Target: chain::Watch<<K::Target as KeysInterface>::Signer>,
68596859
T::Target: BroadcasterInterface,
68606860
K::Target: KeysInterface,
68616861
F::Target: FeeEstimator,
68626862
L::Target: Logger,
68636863
{
6864-
fn read<R: io::Read>(reader: &mut R, mut args: ChannelManagerReadArgs<'a, <K::Target as KeysInterface>::Signer, M, T, K, F, L>) -> Result<Self, DecodeError> {
6864+
fn read<R: io::Read>(reader: &mut R, mut args: ChannelManagerReadArgs<'a, M, T, K, F, L>) -> Result<Self, DecodeError> {
68656865
let _ver = read_ver_prefix!(reader, SERIALIZATION_VERSION);
68666866

68676867
let genesis_hash: BlockHash = Readable::read(reader)?;

lightning/src/ln/inbound_payment.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use bitcoin::hashes::{Hash, HashEngine};
1414
use bitcoin::hashes::cmp::fixed_time_eq;
1515
use bitcoin::hashes::hmac::{Hmac, HmacEngine};
1616
use bitcoin::hashes::sha256::Hash as Sha256;
17-
use crate::chain::keysinterface::{KeyMaterial, KeysInterface, Sign};
17+
use crate::chain::keysinterface::{KeyMaterial, KeysInterface};
1818
use crate::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
1919
use crate::ln::msgs;
2020
use crate::ln::msgs::MAX_VALUE_MSAT;
@@ -91,8 +91,8 @@ impl Method {
9191
/// `current_time` is a Unix timestamp representing the current time.
9292
///
9393
/// [phantom node payments]: crate::chain::keysinterface::PhantomKeysManager
94-
pub fn create<Signer: Sign, K: Deref>(keys: &ExpandedKey, min_value_msat: Option<u64>, invoice_expiry_delta_secs: u32, keys_manager: &K, current_time: u64) -> Result<(PaymentHash, PaymentSecret), ()>
95-
where K::Target: KeysInterface<Signer = Signer>
94+
pub fn create<K: Deref>(keys: &ExpandedKey, min_value_msat: Option<u64>, invoice_expiry_delta_secs: u32, keys_manager: &K, current_time: u64) -> Result<(PaymentHash, PaymentSecret), ()>
95+
where K::Target: KeysInterface
9696
{
9797
let metadata_bytes = construct_metadata_bytes(min_value_msat, Method::LdkPaymentHash, invoice_expiry_delta_secs, current_time)?;
9898

lightning/src/onion_message/functional_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use crate::sync::Arc;
2525

2626
struct MessengerNode {
2727
keys_manager: Arc<test_utils::TestKeysInterface>,
28-
messenger: OnionMessenger<EnforcingSigner, Arc<test_utils::TestKeysInterface>, Arc<test_utils::TestLogger>, Arc<TestCustomMessageHandler>>,
28+
messenger: OnionMessenger<Arc<test_utils::TestKeysInterface>, Arc<test_utils::TestLogger>, Arc<TestCustomMessageHandler>>,
2929
logger: Arc<test_utils::TestLogger>,
3030
}
3131

lightning/src/onion_message/messenger.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use bitcoin::hashes::hmac::{Hmac, HmacEngine};
1515
use bitcoin::hashes::sha256::Hash as Sha256;
1616
use bitcoin::secp256k1::{self, PublicKey, Scalar, Secp256k1, SecretKey};
1717

18-
use crate::chain::keysinterface::{InMemorySigner, KeysInterface, KeysManager, Recipient, Sign};
18+
use crate::chain::keysinterface::{KeysInterface, KeysManager, Recipient};
1919
use crate::ln::features::{InitFeatures, NodeFeatures};
2020
use crate::ln::msgs::{self, OnionMessageHandler};
2121
use crate::ln::onion_utils;
@@ -110,8 +110,8 @@ use crate::prelude::*;
110110
///
111111
/// [offers]: <https://github.com/lightning/bolts/pull/798>
112112
/// [`OnionMessenger`]: crate::onion_message::OnionMessenger
113-
pub struct OnionMessenger<Signer: Sign, K: Deref, L: Deref, CMH: Deref>
114-
where K::Target: KeysInterface<Signer = Signer>,
113+
pub struct OnionMessenger<K: Deref, L: Deref, CMH: Deref>
114+
where K::Target: KeysInterface,
115115
L::Target: Logger,
116116
CMH:: Target: CustomOnionMessageHandler,
117117
{
@@ -180,8 +180,8 @@ pub trait CustomOnionMessageHandler {
180180
fn handle_custom_message(&self, msg: Self::CustomMessage);
181181
}
182182

183-
impl<Signer: Sign, K: Deref, L: Deref, CMH: Deref> OnionMessenger<Signer, K, L, CMH>
184-
where K::Target: KeysInterface<Signer = Signer>,
183+
impl<K: Deref, L: Deref, CMH: Deref> OnionMessenger<K, L, CMH>
184+
where K::Target: KeysInterface,
185185
L::Target: Logger,
186186
CMH::Target: CustomOnionMessageHandler,
187187
{
@@ -276,8 +276,8 @@ fn outbound_buffer_full(peer_node_id: &PublicKey, buffer: &HashMap<PublicKey, Ve
276276
false
277277
}
278278

279-
impl<Signer: Sign, K: Deref, L: Deref, CMH: Deref> OnionMessageHandler for OnionMessenger<Signer, K, L, CMH>
280-
where K::Target: KeysInterface<Signer = Signer>,
279+
impl<K: Deref, L: Deref, CMH: Deref> OnionMessageHandler for OnionMessenger<K, L, CMH>
280+
where K::Target: KeysInterface,
281281
L::Target: Logger,
282282
CMH::Target: CustomOnionMessageHandler,
283283
{
@@ -420,8 +420,8 @@ impl<Signer: Sign, K: Deref, L: Deref, CMH: Deref> OnionMessageHandler for Onion
420420
}
421421
}
422422

423-
impl<Signer: Sign, K: Deref, L: Deref, CMH: Deref> OnionMessageProvider for OnionMessenger<Signer, K, L, CMH>
424-
where K::Target: KeysInterface<Signer = Signer>,
423+
impl<K: Deref, L: Deref, CMH: Deref> OnionMessageProvider for OnionMessenger<K, L, CMH>
424+
where K::Target: KeysInterface,
425425
L::Target: Logger,
426426
CMH::Target: CustomOnionMessageHandler,
427427
{
@@ -443,15 +443,15 @@ impl<Signer: Sign, K: Deref, L: Deref, CMH: Deref> OnionMessageProvider for Onio
443443
///
444444
/// [`SimpleArcChannelManager`]: crate::ln::channelmanager::SimpleArcChannelManager
445445
/// [`SimpleArcPeerManager`]: crate::ln::peer_handler::SimpleArcPeerManager
446-
pub type SimpleArcOnionMessenger<L> = OnionMessenger<InMemorySigner, Arc<KeysManager>, Arc<L>, IgnoringMessageHandler>;
446+
pub type SimpleArcOnionMessenger<L> = OnionMessenger<Arc<KeysManager>, Arc<L>, IgnoringMessageHandler>;
447447
/// Useful for simplifying the parameters of [`SimpleRefChannelManager`] and
448448
/// [`SimpleRefPeerManager`]. See their docs for more details.
449449
///
450450
/// (C-not exported) as general type aliases don't make sense in bindings.
451451
///
452452
/// [`SimpleRefChannelManager`]: crate::ln::channelmanager::SimpleRefChannelManager
453453
/// [`SimpleRefPeerManager`]: crate::ln::peer_handler::SimpleRefPeerManager
454-
pub type SimpleRefOnionMessenger<'a, 'b, L> = OnionMessenger<InMemorySigner, &'a KeysManager, &'b L, IgnoringMessageHandler>;
454+
pub type SimpleRefOnionMessenger<'a, 'b, L> = OnionMessenger<&'a KeysManager, &'b L, IgnoringMessageHandler>;
455455

456456
/// Construct onion packet payloads and keys for sending an onion message along the given
457457
/// `unblinded_path` to the given `destination`.

lightning/src/util/persist.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ pub trait KVStorePersister {
2626
}
2727

2828
/// Trait that handles persisting a [`ChannelManager`], [`NetworkGraph`], and [`WriteableScore`] to disk.
29-
pub trait Persister<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref, S: WriteableScore<'a>>
30-
where M::Target: 'static + chain::Watch<Signer>,
29+
pub trait Persister<'a, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref, S: WriteableScore<'a>>
30+
where M::Target: 'static + chain::Watch<<K::Target as KeysInterface>::Signer>,
3131
T::Target: 'static + BroadcasterInterface,
32-
K::Target: 'static + KeysInterface<Signer = Signer>,
32+
K::Target: 'static + KeysInterface,
3333
F::Target: 'static + FeeEstimator,
3434
L::Target: 'static + Logger,
3535
{
@@ -43,10 +43,10 @@ pub trait Persister<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L:
4343
fn persist_scorer(&self, scorer: &S) -> Result<(), io::Error>;
4444
}
4545

46-
impl<'a, A: KVStorePersister, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref, S: WriteableScore<'a>> Persister<'a, Signer, M, T, K, F, L, S> for A
47-
where M::Target: 'static + chain::Watch<Signer>,
46+
impl<'a, A: KVStorePersister, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref, S: WriteableScore<'a>> Persister<'a, M, T, K, F, L, S> for A
47+
where M::Target: 'static + chain::Watch<<K::Target as KeysInterface>::Signer>,
4848
T::Target: 'static + BroadcasterInterface,
49-
K::Target: 'static + KeysInterface<Signer = Signer>,
49+
K::Target: 'static + KeysInterface,
5050
F::Target: 'static + FeeEstimator,
5151
L::Target: 'static + Logger,
5252
{

lightning/src/util/scid_utils.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ pub fn scid_from_parts(block: u64, tx_index: u64, vout_index: u64) -> Result<u64
6666
pub(crate) mod fake_scid {
6767
use bitcoin::hash_types::BlockHash;
6868
use bitcoin::hashes::hex::FromHex;
69-
use crate::chain::keysinterface::{Sign, KeysInterface};
69+
use crate::chain::keysinterface::KeysInterface;
7070
use crate::util::chacha20::ChaCha20;
7171
use crate::util::scid_utils;
7272

@@ -98,8 +98,8 @@ pub(crate) mod fake_scid {
9898
/// between segwit activation and the current best known height, and the tx index and output
9999
/// index are also selected from a "reasonable" range. We add this logic because it makes it
100100
/// non-obvious at a glance that the scid is fake, e.g. if it appears in invoice route hints.
101-
pub(crate) fn get_fake_scid<Signer: Sign, K: Deref>(&self, highest_seen_blockheight: u32, genesis_hash: &BlockHash, fake_scid_rand_bytes: &[u8; 32], keys_manager: &K) -> u64
102-
where K::Target: KeysInterface<Signer = Signer>,
101+
pub(crate) fn get_fake_scid<K: Deref>(&self, highest_seen_blockheight: u32, genesis_hash: &BlockHash, fake_scid_rand_bytes: &[u8; 32], keys_manager: &K) -> u64
102+
where K::Target: KeysInterface,
103103
{
104104
// Ensure we haven't created a namespace that doesn't fit into the 3 bits we've allocated for
105105
// namespaces.

0 commit comments

Comments
 (0)