use lightning::routing::network_graph::NetGraphMsgHandler;
use lightning::routing::router;
use lightning::routing::router::RouteHint;
+use lightning::routing::scorer::Scorer;
use lightning::util::config::{ChannelConfig, ChannelHandshakeLimits, UserConfig};
use lightning_invoice::{utils, Currency, Invoice};
use std::env;
let mut ldk_peer_port_set = true;
let ldk_peer_listening_port: u16 = match env::args().skip(3).next().map(|p| p.parse()) {
Some(Ok(p)) => p,
- Some(Err(e)) => panic!("{}", e),
+ Some(Err(_)) => {
+ ldk_peer_port_set = false;
+ 9735
+ }
None => {
ldk_peer_port_set = false;
9735
let network: Network = match env::args().skip(arg_idx).next().as_ref().map(String::as_str) {
Some("testnet") => Network::Testnet,
Some("regtest") => Network::Regtest,
- Some(_) => panic!("Unsupported network provided. Options are: `regtest`, `testnet`"),
+ Some(net) => {
+ panic!("Unsupported network provided. Options are: `regtest`, `testnet`. Got {}", net);
+ }
None => Network::Testnet,
};
let payee_pubkey = invoice.recover_payee_pub_key();
let final_cltv = invoice.min_final_cltv_expiry() as u32;
let payment_hash = PaymentHash(invoice.payment_hash().clone().into_inner());
- let payment_secret = invoice.payment_secret().cloned();
+ let payment_secret = Some(invoice.payment_secret().clone());
let invoice_features = invoice.features().cloned();
send_payment(
}
println!("\t\tis_confirmed_onchain: {},", chan_info.is_funding_locked);
println!("\t\tchannel_value_satoshis: {},", chan_info.channel_value_satoshis);
+ println!(
+ "\t\tlocal_balance_msat: {},",
+ chan_info.outbound_capacity_msat
+ + chan_info.unspendable_punishment_reserve.unwrap_or(0) * 1000
+ );
if chan_info.is_usable {
println!("\t\tavailable_balance_for_send_msat: {},", chan_info.outbound_capacity_msat);
println!("\t\tavailable_balance_for_recv_msat: {},", chan_info.inbound_capacity_msat);
channel_manager: Arc<ChannelManager>, payment_storage: PaymentInfoStorage,
logger: Arc<FilesystemLogger>,
) {
- let network_graph = router.network_graph.read().unwrap();
+ let network_graph = &router.network_graph;
let first_hops = channel_manager.list_usable_channels();
let payer_pubkey = channel_manager.get_our_node_id();
amt_msat,
final_cltv,
logger,
+ &Scorer::default(),
);
if let Err(e) = route {
println!("ERROR: failed to find route: {}", e.err);
}
let status = match channel_manager.send_payment(&route.unwrap(), payment_hash, &payment_secret)
{
- Ok(()) => {
+ Ok(_payment_id) => {
println!("EVENT: initiated sending {} msats to {}", amt_msat, payee);
HTLCStatus::Pending
}
channel_manager: Arc<ChannelManager>, payment_storage: PaymentInfoStorage,
logger: Arc<FilesystemLogger>,
) {
- let network_graph = router.network_graph.read().unwrap();
+ let network_graph = &router.network_graph;
let first_hops = channel_manager.list_usable_channels();
let payer_pubkey = channel_manager.get_our_node_id();
amt_msat,
40,
logger,
+ &Scorer::default(),
) {
Ok(r) => r,
Err(e) => {
};
let mut payments = payment_storage.lock().unwrap();
- let payment_hash = channel_manager.send_spontaneous_payment(&route, None).unwrap();
+ let payment_hash = channel_manager.send_spontaneous_payment(&route, None).unwrap().0;
payments.insert(
payment_hash,
PaymentInfo {
payment_hash,
PaymentInfo {
preimage: None,
- secret: invoice.payment_secret().cloned(),
+ secret: Some(invoice.payment_secret().clone()),
status: HTLCStatus::Pending,
amt_msat: MillisatAmount(Some(amt_msat)),
},