Skip to content

Commit 42648ad

Browse files
committed
Refactor InvoicePayer to allow use of async event handler
Previously, an InvoicePayer's event_handler was only used in one place, handle_event. We now keep the event interception intact, but create two different wrapper structs that allow the InvoicePayer to implement both sync and async event handlers.
1 parent 5d812ea commit 42648ad

File tree

2 files changed

+135
-67
lines changed

2 files changed

+135
-67
lines changed

lightning-background-processor/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ mod tests {
630630
use std::time::Duration;
631631
use bitcoin::hashes::Hash;
632632
use bitcoin::TxMerkleNode;
633-
use lightning::routing::scoring::{FixedPenaltyScorer};
633+
use lightning::routing::scoring::FixedPenaltyScorer;
634634
use lightning_rapid_gossip_sync::RapidGossipSync;
635635
use super::{BackgroundProcessor, GossipSync, FRESHNESS_TIMER};
636636

@@ -1155,7 +1155,7 @@ mod tests {
11551155
let data_dir = nodes[0].persister.get_data_dir();
11561156
let persister = Arc::new(Persister::new(data_dir));
11571157
let router = DefaultRouter::new(Arc::clone(&nodes[0].network_graph), Arc::clone(&nodes[0].logger), random_seed_bytes, Arc::clone(&nodes[0].scorer));
1158-
let invoice_payer = Arc::new(InvoicePayer::new(Arc::clone(&nodes[0].node), router, Arc::clone(&nodes[0].logger), |_: _| {}, Retry::Attempts(2)));
1158+
let invoice_payer = Arc::new(InvoicePayer::new(Arc::clone(&nodes[0].node), router, Arc::clone(&nodes[0].logger), Retry::Attempts(2)).with_event_handler(|_: _| {}));
11591159
let event_handler = Arc::clone(&invoice_payer);
11601160
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].no_gossip_sync(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(nodes[0].scorer.clone()));
11611161
assert!(bg_processor.stop().is_ok());

0 commit comments

Comments
 (0)