Skip to content

Commit ec4d0c2

Browse files
committed
Test PaymentRetryHandler in BackgroundProcessor
Proof of concept showing PaymentRetryHandler can be used with an Arc<ChannelManager> passed to BackgroundProcessor. Likely do not need to merge this commit.
1 parent 9f34293 commit ec4d0c2

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

lightning-background-processor/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ edition = "2018"
1212
[dependencies]
1313
bitcoin = "0.27"
1414
lightning = { version = "0.0.99", path = "../lightning", features = ["allow_wallclock_use"] }
15+
lightning-invoice = { version = "0.7.0", path = "../lightning-invoice" }
1516
lightning-persister = { version = "0.0.99", path = "../lightning-persister" }
1617

1718
[dev-dependencies]

lightning-background-processor/src/lib.rs

+19-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ impl BackgroundProcessor {
119119
Descriptor: 'static + SocketDescriptor + Send + Sync,
120120
CMH: 'static + Deref + Send + Sync,
121121
RMH: 'static + Deref + Send + Sync,
122-
EH: 'static + EventHandler + Send + Sync,
122+
EH: 'static + EventHandler + Send,
123123
CMP: 'static + Send + ChannelManagerPersister<Signer, CW, T, K, F, L>,
124124
M: 'static + Deref<Target = ChainMonitor<Signer, CF, T, F, L, P>> + Send + Sync,
125125
CM: 'static + Deref<Target = ChannelManager<Signer, CW, T, K, F, L>> + Send + Sync,
@@ -248,10 +248,13 @@ mod tests {
248248
use lightning::ln::features::InitFeatures;
249249
use lightning::ln::msgs::{ChannelMessageHandler, Init};
250250
use lightning::ln::peer_handler::{PeerManager, MessageHandler, SocketDescriptor};
251+
use lightning::routing::network_graph::NetworkGraph;
251252
use lightning::util::config::UserConfig;
252253
use lightning::util::events::{Event, MessageSendEventsProvider, MessageSendEvent};
253254
use lightning::util::ser::Writeable;
254255
use lightning::util::test_utils;
256+
use lightning_invoice::payment::InvoicePayer;
257+
use lightning_invoice::utils::DefaultRouter;
255258
use lightning_persister::FilesystemPersister;
256259
use std::fs;
257260
use std::path::PathBuf;
@@ -552,4 +555,19 @@ mod tests {
552555

553556
assert!(bg_processor.stop().is_ok());
554557
}
558+
559+
#[test]
560+
fn test_invoice_payer() {
561+
let nodes = create_nodes(2, "test_invoice_payer".to_string());
562+
563+
// Initiate the background processors to watch each node.
564+
let data_dir = nodes[0].persister.get_data_dir();
565+
let persister = move |node: &ChannelManager<InMemorySigner, Arc<ChainMonitor>, Arc<test_utils::TestBroadcaster>, Arc<KeysManager>, Arc<test_utils::TestFeeEstimator>, Arc<test_utils::TestLogger>>| FilesystemPersister::persist_manager(data_dir.clone(), node);
566+
let router = DefaultRouter::new(Arc::clone(&nodes[0].logger));
567+
let network_graph = Arc::new(NetworkGraph::new(genesis_block(Network::Testnet).header.block_hash()));
568+
let event_handler = |_: &_| {};
569+
let (_, event_handler) = InvoicePayer::new(Arc::clone(&nodes[0].node), router, network_graph, Arc::clone(&nodes[0].logger), event_handler);
570+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone());
571+
assert!(bg_processor.stop().is_ok());
572+
}
555573
}

0 commit comments

Comments
 (0)