X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain.rs;h=4314ac87131dc05ee92f56b51ebfc36e5f3336f2;hb=63d4ae286b8dad74080d35e095d1b490ddcde474;hp=0d5915d9effc49415a10e0080a49e90af83aae81;hpb=51bf3cedb275924bfe19785dda668122c594ae2e;p=ldk-sample diff --git a/src/main.rs b/src/main.rs index 0d5915d..4314ac8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,8 +15,8 @@ use bitcoin::BlockHash; use bitcoin_bech32::WitnessProgram; use lightning::chain; use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator}; -use lightning::chain::chainmonitor; use lightning::chain::keysinterface::{InMemorySigner, KeysInterface, KeysManager, Recipient}; +use lightning::chain::{chainmonitor, ChannelMonitorUpdateStatus}; use lightning::chain::{BestBlock, Filter, Watch}; use lightning::ln::channelmanager; use lightning::ln::channelmanager::{ @@ -43,6 +43,7 @@ use lightning_persister::FilesystemPersister; use rand::{thread_rng, Rng}; use std::collections::hash_map::Entry; use std::collections::HashMap; +use std::convert::TryInto; use std::fmt; use std::fs; use std::fs::File; @@ -100,16 +101,15 @@ pub(crate) type PeerManager = SimpleArcPeerManager< pub(crate) type ChannelManager = SimpleArcChannelManager; -pub(crate) type InvoicePayer = payment::InvoicePayer< - Arc, - Router, - Arc, Arc>>>, +pub(crate) type InvoicePayer = + payment::InvoicePayer, Router, Arc, E>; + +type Router = DefaultRouter< + Arc, Arc, - E, + Arc, Arc>>>, >; -type Router = DefaultRouter, Arc>; - pub(crate) type NetworkGraph = gossip::NetworkGraph>; type OnionMessenger = SimpleArcOnionMessenger; @@ -544,7 +544,10 @@ async fn start_ldk() { for item in chain_listener_channel_monitors.drain(..) { let channel_monitor = item.1 .0; let funding_outpoint = item.2; - chain_monitor.watch_channel(funding_outpoint, channel_monitor).unwrap(); + assert_eq!( + chain_monitor.watch_channel(funding_outpoint, channel_monitor), + ChannelMonitorUpdateStatus::Completed + ); } // Step 11: Optional: Initialize the P2PGossipSync @@ -560,8 +563,11 @@ async fn start_ldk() { // Step 12: Initialize the PeerManager let channel_manager: Arc = Arc::new(channel_manager); - let onion_messenger: Arc = - Arc::new(OnionMessenger::new(keys_manager.clone(), logger.clone())); + let onion_messenger: Arc = Arc::new(OnionMessenger::new( + Arc::clone(&keys_manager), + Arc::clone(&logger), + IgnoringMessageHandler {}, + )); let mut ephemeral_bytes = [0; 32]; let current_time = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap().as_secs(); rand::thread_rng().fill_bytes(&mut ephemeral_bytes); @@ -573,7 +579,7 @@ async fn start_ldk() { let peer_manager: Arc = Arc::new(PeerManager::new( lightning_msg_handler, keys_manager.get_node_secret(Recipient::Node).unwrap(), - current_time, + current_time.try_into().unwrap(), &ephemeral_bytes, logger.clone(), IgnoringMessageHandler {}, @@ -663,11 +669,11 @@ async fn start_ldk() { network_graph.clone(), logger.clone(), keys_manager.get_secure_random_bytes(), + scorer.clone(), ); let invoice_payer = Arc::new(InvoicePayer::new( channel_manager.clone(), router, - scorer.clone(), logger.clone(), event_handler, payment::Retry::Timeout(Duration::from_secs(10)), @@ -758,6 +764,7 @@ async fn start_ldk() { outbound_payments, ldk_data_dir.clone(), network, + Arc::clone(&logger), ) .await;