X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain.rs;h=4073be9ea73faa4395955d00b8f1693f3a002405;hb=90c12f0f24689326ae09637a9ad620f781d97e5c;hp=cba93f6a7f28e9c3d22a68aad98c210edce1874a;hpb=6200c113694be7df65299cf468dad93073c4dd07;p=ldk-sample diff --git a/src/main.rs b/src/main.rs index cba93f6..4073be9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,11 +19,10 @@ use lightning::chain; use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator}; use lightning::chain::chainmonitor; use lightning::chain::keysinterface::{InMemorySigner, KeysInterface, KeysManager}; -use lightning::chain::Filter; -use lightning::chain::Watch; +use lightning::chain::{BestBlock, Filter, Watch}; use lightning::ln::channelmanager; use lightning::ln::channelmanager::{ - BestBlock, ChainParameters, ChannelManagerReadArgs, SimpleArcChannelManager, + ChainParameters, ChannelManagerReadArgs, SimpleArcChannelManager, }; use lightning::ln::peer_handler::{MessageHandler, SimpleArcPeerManager}; use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret}; @@ -139,7 +138,15 @@ async fn handle_ldk_events( let final_tx: Transaction = encode::deserialize(&hex_utils::to_vec(&signed_tx.hex).unwrap()).unwrap(); // Give the funding transaction back to LDK for opening the channel. - channel_manager.funding_transaction_generated(&temporary_channel_id, final_tx).unwrap(); + if channel_manager + .funding_transaction_generated(&temporary_channel_id, final_tx) + .is_err() + { + println!( + "\nERROR: Channel went away before we could fund it. The peer disconnected or refused the channel."); + print!("> "); + io::stdout().flush().unwrap(); + } } Event::PaymentReceived { payment_hash, payment_preimage, payment_secret, amt, .. } => { let mut payments = inbound_payments.lock().unwrap(); @@ -552,7 +559,7 @@ async fn start_ldk() { Ok(mut info) => { for (pubkey, peer_addr) in info.drain() { for chan_info in channel_manager.list_channels() { - if pubkey == chan_info.remote_network_id { + if pubkey == chan_info.counterparty.node_id { let _ = cli::connect_peer_if_necessary(pubkey, peer_addr, peer_manager.clone()) .await; @@ -569,7 +576,7 @@ async fn start_ldk() { // to avoid churn in the global network graph. let chan_manager = Arc::clone(&channel_manager); let network = args.network; - if args.ldk_announced_listen_addr.is_some() { + if !args.ldk_announced_listen_addr.is_empty() { tokio::spawn(async move { let mut interval = tokio::time::interval(Duration::from_secs(60)); loop { @@ -577,7 +584,7 @@ async fn start_ldk() { chan_manager.broadcast_node_announcement( [0; 3], args.ldk_announced_node_name, - vec![args.ldk_announced_listen_addr.as_ref().unwrap().clone()], + args.ldk_announced_listen_addr.clone(), ); } });