Skip to content

Commit aa63ffb

Browse files
committed
Update: Convert TestMessageRouter to enum
1 parent 2486093 commit aa63ffb

File tree

4 files changed

+69
-16
lines changed

4 files changed

+69
-16
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16386,7 +16386,7 @@ pub mod bench {
1638616386
let scorer = RwLock::new(test_utils::TestScorer::new());
1638716387
let entropy = test_utils::TestKeysInterface::new(&[0u8; 32], network);
1638816388
let router = test_utils::TestRouter::new(Arc::new(NetworkGraph::new(network, &logger_a)), &logger_a, &scorer);
16389-
let message_router = test_utils::TestMessageRouter::new(Arc::new(NetworkGraph::new(network, &logger_a)), &entropy);
16389+
let message_router = test_utils::TestMessageRouter::new_default(Arc::new(NetworkGraph::new(network, &logger_a)), &entropy);
1639016390

1639116391
let mut config: UserConfig = Default::default();
1639216392
config.channel_config.max_dust_htlc_exposure = MaxDustHTLCExposure::FeeRateMultiplier(5_000_000 / 253);

lightning/src/ln/functional_test_utils.rs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ impl<'a, 'b, 'c> Drop for Node<'a, 'b, 'c> {
722722
signer_provider: self.keys_manager,
723723
fee_estimator: &test_utils::TestFeeEstimator::new(253),
724724
router: &test_utils::TestRouter::new(Arc::clone(&network_graph), &self.logger, &scorer),
725-
message_router: &test_utils::TestMessageRouter::new(network_graph, self.keys_manager),
725+
message_router: &test_utils::TestMessageRouter::new_default(network_graph, self.keys_manager),
726726
chain_monitor: self.chain_monitor,
727727
tx_broadcaster: &broadcaster,
728728
logger: &self.logger,
@@ -3310,7 +3310,7 @@ pub fn create_node_cfgs_with_persisters<'a>(node_count: usize, chanmon_cfgs: &'a
33103310
tx_broadcaster: &chanmon_cfgs[i].tx_broadcaster,
33113311
fee_estimator: &chanmon_cfgs[i].fee_estimator,
33123312
router: test_utils::TestRouter::new(network_graph.clone(), &chanmon_cfgs[i].logger, &chanmon_cfgs[i].scorer),
3313-
message_router: test_utils::TestMessageRouter::new(network_graph.clone(), &chanmon_cfgs[i].keys_manager),
3313+
message_router: test_utils::TestMessageRouter::new_default(network_graph.clone(), &chanmon_cfgs[i].keys_manager),
33143314
chain_monitor,
33153315
keys_manager: &chanmon_cfgs[i].keys_manager,
33163316
node_seed: seed,
@@ -3322,6 +3322,34 @@ pub fn create_node_cfgs_with_persisters<'a>(node_count: usize, chanmon_cfgs: &'a
33223322
nodes
33233323
}
33243324

3325+
pub fn create_node_cfgs_with_node_id_message_router<'a>(node_count: usize, chanmon_cfgs: &'a Vec<TestChanMonCfg>) -> Vec<NodeCfg<'a>> {
3326+
let persisters: Vec<_> = chanmon_cfgs.iter().map(|c| &c.persister).collect();
3327+
3328+
let mut nodes = Vec::new();
3329+
3330+
for i in 0..node_count {
3331+
let chain_monitor = test_utils::TestChainMonitor::new(Some(&chanmon_cfgs[i].chain_source), &chanmon_cfgs[i].tx_broadcaster, &chanmon_cfgs[i].logger, &chanmon_cfgs[i].fee_estimator, persisters[i], &chanmon_cfgs[i].keys_manager);
3332+
let network_graph = Arc::new(NetworkGraph::new(Network::Testnet, &chanmon_cfgs[i].logger));
3333+
let seed = [i as u8; 32];
3334+
nodes.push(NodeCfg {
3335+
chain_source: &chanmon_cfgs[i].chain_source,
3336+
logger: &chanmon_cfgs[i].logger,
3337+
tx_broadcaster: &chanmon_cfgs[i].tx_broadcaster,
3338+
fee_estimator: &chanmon_cfgs[i].fee_estimator,
3339+
router: test_utils::TestRouter::new(network_graph.clone(), &chanmon_cfgs[i].logger, &chanmon_cfgs[i].scorer),
3340+
message_router: test_utils::TestMessageRouter::new_node_id_router(network_graph.clone(), &chanmon_cfgs[i].keys_manager),
3341+
chain_monitor,
3342+
keys_manager: &chanmon_cfgs[i].keys_manager,
3343+
node_seed: seed,
3344+
network_graph,
3345+
override_init_features: Rc::new(RefCell::new(None)),
3346+
});
3347+
}
3348+
3349+
nodes
3350+
}
3351+
3352+
33253353
pub fn test_default_channel_config() -> UserConfig {
33263354
let mut default_config = UserConfig::default();
33273355
// Set cltv_expiry_delta slightly lower to keep the final CLTV values inside one byte in our

lightning/src/ln/functional_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5987,7 +5987,7 @@ pub fn test_key_derivation_params() {
59875987
let network_graph = Arc::new(NetworkGraph::new(Network::Testnet, &chanmon_cfgs[0].logger));
59885988
let scorer = RwLock::new(test_utils::TestScorer::new());
59895989
let router = test_utils::TestRouter::new(network_graph.clone(), &chanmon_cfgs[0].logger, &scorer);
5990-
let message_router = test_utils::TestMessageRouter::new(network_graph.clone(), &keys_manager);
5990+
let message_router = test_utils::TestMessageRouter::new_default(network_graph.clone(), &keys_manager);
59915991
let node = NodeCfg { chain_source: &chanmon_cfgs[0].chain_source, logger: &chanmon_cfgs[0].logger, tx_broadcaster: &chanmon_cfgs[0].tx_broadcaster, fee_estimator: &chanmon_cfgs[0].fee_estimator, router, message_router, chain_monitor, keys_manager: &keys_manager, network_graph, node_seed: seed, override_init_features: alloc::rc::Rc::new(core::cell::RefCell::new(None)) };
59925992
let mut node_cfgs = create_node_cfgs(3, &chanmon_cfgs);
59935993
node_cfgs.remove(0);

lightning/src/util/test_utils.rs

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use crate::ln::types::ChannelId;
3333
use crate::ln::{msgs, wire};
3434
use crate::offers::invoice::UnsignedBolt12Invoice;
3535
use crate::onion_message::messenger::{
36-
DefaultMessageRouter, Destination, MessageRouter, OnionMessagePath,
36+
DefaultMessageRouter, Destination, MessageRouter, NodeIdMessageRouter, OnionMessagePath
3737
};
3838
use crate::routing::gossip::{EffectiveCapacity, NetworkGraph, NodeId, RoutingFees};
3939
use crate::routing::router::{
@@ -311,41 +311,66 @@ impl<'a> Drop for TestRouter<'a> {
311311
}
312312
}
313313

314-
pub struct TestMessageRouter<'a> {
315-
inner: DefaultMessageRouter<
316-
Arc<NetworkGraph<&'a TestLogger>>,
317-
&'a TestLogger,
318-
&'a TestKeysInterface,
319-
>,
314+
pub enum TestMessageRouter<'a> {
315+
Default {
316+
inner: DefaultMessageRouter<
317+
Arc<NetworkGraph<&'a TestLogger>>,
318+
&'a TestLogger,
319+
&'a TestKeysInterface,
320+
>,
321+
},
322+
323+
NodeId {
324+
inner: NodeIdMessageRouter<
325+
Arc<NetworkGraph<&'a TestLogger>>,
326+
&'a TestLogger,
327+
&'a TestKeysInterface,
328+
>
329+
}
320330
}
321331

322332
impl<'a> TestMessageRouter<'a> {
323-
pub fn new(
333+
pub fn new_default(
324334
network_graph: Arc<NetworkGraph<&'a TestLogger>>, entropy_source: &'a TestKeysInterface,
325335
) -> Self {
326-
Self { inner: DefaultMessageRouter::new(network_graph, entropy_source) }
336+
Self::Default { inner: DefaultMessageRouter::new(network_graph, entropy_source) }
337+
}
338+
339+
pub fn new_node_id_router(
340+
network_graph: Arc<NetworkGraph<&'a TestLogger>>, entropy_source: &'a TestKeysInterface,
341+
) -> Self {
342+
Self::NodeId { inner: NodeIdMessageRouter::new(network_graph, entropy_source) }
327343
}
328344
}
329345

330346
impl<'a> MessageRouter for TestMessageRouter<'a> {
331347
fn find_path(
332348
&self, sender: PublicKey, peers: Vec<PublicKey>, destination: Destination,
333349
) -> Result<OnionMessagePath, ()> {
334-
self.inner.find_path(sender, peers, destination)
350+
match self {
351+
Self::Default { inner } => inner.find_path(sender, peers, destination),
352+
Self::NodeId { inner } => inner.find_path(sender, peers, destination),
353+
}
335354
}
336355

337356
fn create_blinded_paths<T: secp256k1::Signing + secp256k1::Verification>(
338357
&self, recipient: PublicKey, context: MessageContext, peers: Vec<MessageForwardNode>,
339358
secp_ctx: &Secp256k1<T>,
340359
) -> Result<Vec<BlindedMessagePath>, ()> {
341-
self.inner.create_blinded_paths(recipient, context, peers, secp_ctx)
360+
match self {
361+
Self::Default { inner } => inner.create_blinded_paths(recipient, context, peers, secp_ctx),
362+
Self::NodeId { inner } => inner.create_blinded_paths(recipient, context, peers, secp_ctx),
363+
}
342364
}
343365

344366
fn create_compact_blinded_paths<T: secp256k1::Signing + secp256k1::Verification>(
345367
&self, recipient: PublicKey, context: MessageContext, peers: Vec<MessageForwardNode>,
346368
secp_ctx: &Secp256k1<T>,
347369
) -> Result<Vec<BlindedMessagePath>, ()> {
348-
self.inner.create_compact_blinded_paths(recipient, context, peers, secp_ctx)
370+
match self {
371+
Self::Default { inner } => inner.create_compact_blinded_paths(recipient, context, peers, secp_ctx),
372+
Self::NodeId { inner } => inner.create_compact_blinded_paths(recipient, context, peers, secp_ctx),
373+
}
349374
}
350375
}
351376

0 commit comments

Comments
 (0)