Skip to content

Commit d53b5f7

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 dd6c9b4 commit d53b5f7

File tree

2 files changed

+221
-104
lines changed

2 files changed

+221
-104
lines changed

lightning-background-processor/src/lib.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ mod tests {
620620
use lightning::util::ser::Writeable;
621621
use lightning::util::test_utils;
622622
use lightning::util::persist::KVStorePersister;
623-
use lightning_invoice::payment::{InvoicePayer, Retry};
623+
use lightning_invoice::payment::{InvoicePayer, InvoicePayerEventHandler, Retry};
624624
use lightning_invoice::utils::DefaultRouter;
625625
use lightning_persister::FilesystemPersister;
626626
use std::fs;
@@ -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,10 @@ 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(InvoicePayerEventHandler {
1159+
invoice_payer: InvoicePayer::new(Arc::clone(&nodes[0].node), router, Arc::clone(&nodes[0].logger), Retry::Attempts(2)),
1160+
event_handler: |_: _| {},
1161+
});
11591162
let event_handler = Arc::clone(&invoice_payer);
11601163
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()));
11611164
assert!(bg_processor.stop().is_ok());

0 commit comments

Comments
 (0)