Skip to content

Commit e752325

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 e11d1ad commit e752325

File tree

2 files changed

+215
-101
lines changed

2 files changed

+215
-101
lines changed

lightning-background-processor/src/lib.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,7 @@ mod tests {
615615
use lightning::util::ser::Writeable;
616616
use lightning::util::test_utils;
617617
use lightning::util::persist::KVStorePersister;
618-
use lightning_invoice::payment::{InvoicePayer, Retry};
618+
use lightning_invoice::payment::{InvoicePayer, InvoicePayerEventHandler, Retry};
619619
use lightning_invoice::utils::DefaultRouter;
620620
use lightning_persister::FilesystemPersister;
621621
use std::fs;
@@ -625,7 +625,7 @@ mod tests {
625625
use std::time::Duration;
626626
use bitcoin::hashes::Hash;
627627
use bitcoin::TxMerkleNode;
628-
use lightning::routing::scoring::{FixedPenaltyScorer};
628+
use lightning::routing::scoring::FixedPenaltyScorer;
629629
use lightning_rapid_gossip_sync::RapidGossipSync;
630630
use super::{BackgroundProcessor, GossipSync, FRESHNESS_TIMER};
631631

@@ -1142,7 +1142,10 @@ mod tests {
11421142
let data_dir = nodes[0].persister.get_data_dir();
11431143
let persister = Arc::new(Persister::new(data_dir));
11441144
let router = DefaultRouter::new(Arc::clone(&nodes[0].network_graph), Arc::clone(&nodes[0].logger), random_seed_bytes, Arc::clone(&nodes[0].scorer));
1145-
let invoice_payer = Arc::new(InvoicePayer::new(Arc::clone(&nodes[0].node), router, Arc::clone(&nodes[0].logger), |_: _| {}, Retry::Attempts(2)));
1145+
let invoice_payer = Arc::new(InvoicePayerEventHandler {
1146+
invoice_payer: InvoicePayer::new(Arc::clone(&nodes[0].node), router, Arc::clone(&nodes[0].logger), Retry::Attempts(2)),
1147+
event_handler: |_: _| {},
1148+
});
11461149
let event_handler = Arc::clone(&invoice_payer);
11471150
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()));
11481151
assert!(bg_processor.stop().is_ok());

0 commit comments

Comments
 (0)