Skip to content

Commit e846d07

Browse files
committed
Handle Event::BumpTransaction via BumpTxEventHandler
1 parent 8b3567d commit e846d07

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/main.rs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use bitcoin_bech32::WitnessProgram;
1616
use disk::{INBOUND_PAYMENTS_FNAME, OUTBOUND_PAYMENTS_FNAME};
1717
use lightning::chain::{chainmonitor, ChannelMonitorUpdateStatus};
1818
use lightning::chain::{Filter, Watch};
19+
use lightning::events::bump_transaction::{BumpTransactionEventHandler, Wallet};
1920
use lightning::events::{Event, PaymentFailureReason, PaymentPurpose};
2021
use lightning::ln::channelmanager::{self, RecentPaymentDetails};
2122
use lightning::ln::channelmanager::{
@@ -141,10 +142,17 @@ pub(crate) type NetworkGraph = gossip::NetworkGraph<Arc<FilesystemLogger>>;
141142

142143
type OnionMessenger = SimpleArcOnionMessenger<FilesystemLogger>;
143144

145+
pub(crate) type BumpTxEventHandler = BumpTransactionEventHandler<
146+
Arc<BitcoindClient>,
147+
Arc<Wallet<Arc<BitcoindClient>, Arc<FilesystemLogger>>>,
148+
Arc<KeysManager>,
149+
Arc<FilesystemLogger>,
150+
>;
151+
144152
async fn handle_ldk_events(
145153
channel_manager: &Arc<ChannelManager>, bitcoind_client: &BitcoindClient,
146154
network_graph: &NetworkGraph, keys_manager: &KeysManager,
147-
inbound_payments: Arc<Mutex<PaymentInfoStorage>>,
155+
bump_tx_event_handler: &BumpTxEventHandler, inbound_payments: Arc<Mutex<PaymentInfoStorage>>,
148156
outbound_payments: Arc<Mutex<PaymentInfoStorage>>, persister: &Arc<FilesystemPersister>,
149157
network: Network, event: Event,
150158
) {
@@ -455,7 +463,7 @@ async fn handle_ldk_events(
455463
// the funding transaction either confirms, or this event is generated.
456464
}
457465
Event::HTLCIntercepted { .. } => {}
458-
Event::BumpTransaction(_) => {}
466+
Event::BumpTransaction(event) => bump_tx_event_handler.handle_event(&event),
459467
}
460468
}
461469

@@ -558,6 +566,13 @@ async fn start_ldk() {
558566
let cur = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap();
559567
let keys_manager = Arc::new(KeysManager::new(&keys_seed, cur.as_secs(), cur.subsec_nanos()));
560568

569+
let bump_tx_event_handler = Arc::new(BumpTransactionEventHandler::new(
570+
Arc::clone(&broadcaster),
571+
Arc::new(Wallet::new(Arc::clone(&bitcoind_client), Arc::clone(&logger))),
572+
Arc::clone(&keys_manager),
573+
Arc::clone(&logger),
574+
));
575+
561576
// Step 7: Read ChannelMonitor state from disk
562577
let mut channelmonitors =
563578
persister.read_channelmonitors(keys_manager.clone(), keys_manager.clone()).unwrap();
@@ -805,6 +820,7 @@ async fn start_ldk() {
805820
let bitcoind_client_event_listener = Arc::clone(&bitcoind_client_event_listener);
806821
let network_graph_event_listener = Arc::clone(&network_graph_event_listener);
807822
let keys_manager_event_listener = Arc::clone(&keys_manager_event_listener);
823+
let bump_tx_event_handler = Arc::clone(&bump_tx_event_handler);
808824
let inbound_payments_event_listener = Arc::clone(&inbound_payments_event_listener);
809825
let outbound_payments_event_listener = Arc::clone(&outbound_payments_event_listener);
810826
let persister_event_listener = Arc::clone(&persister_event_listener);
@@ -814,6 +830,7 @@ async fn start_ldk() {
814830
&bitcoind_client_event_listener,
815831
&network_graph_event_listener,
816832
&keys_manager_event_listener,
833+
&bump_tx_event_handler,
817834
inbound_payments_event_listener,
818835
outbound_payments_event_listener,
819836
&persister_event_listener,

0 commit comments

Comments
 (0)