use lightning::chain;
use lightning::chain::chaininterface::{BroadcasterInterface, FeeEstimator};
use lightning::chain::keysinterface::{Sign, KeysInterface};
-use lightning::ln::{PaymentHash, PaymentSecret};
+use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
use lightning::ln::channelmanager::{ChannelDetails, ChannelManager, PaymentId, PaymentSendFailure, MIN_FINAL_CLTV_EXPIRY};
use lightning::ln::msgs::LightningError;
+use lightning::routing::scoring::Score;
use lightning::routing::network_graph::{NetworkGraph, RoutingFees};
use lightning::routing::router::{Route, RouteHint, RouteHintHop, RouteParameters, find_route};
-use lightning::routing::scorer::Scorer;
use lightning::util::logger::Logger;
use secp256k1::key::PublicKey;
use std::convert::TryInto;
let (payment_hash, payment_secret) = channelmanager.create_inbound_payment(
amt_msat,
DEFAULT_EXPIRY_TIME.try_into().unwrap(),
- 0,
);
let our_node_pubkey = channelmanager.get_our_node_id();
let mut invoice = InvoiceBuilder::new(network)
}
}
-impl<G, L: Deref> Router for DefaultRouter<G, L>
+impl<G, L: Deref, S: Score> Router<S> for DefaultRouter<G, L>
where G: Deref<Target = NetworkGraph>, L::Target: Logger {
fn find_route(
- &self, payer: &PublicKey, params: &RouteParameters, first_hops: Option<&[&ChannelDetails]>,
+ &self, payer: &PublicKey, params: &RouteParameters, _payment_hash: &PaymentHash,
+ first_hops: Option<&[&ChannelDetails]>, scorer: &S
) -> Result<Route, LightningError> {
- let scorer = Scorer::default();
- find_route(payer, params, &*self.network_graph, first_hops, &*self.logger, &scorer)
+ find_route(payer, params, &*self.network_graph, first_hops, &*self.logger, scorer)
}
}
self.send_payment(route, payment_hash, payment_secret)
}
+ fn send_spontaneous_payment(
+ &self, route: &Route, payment_preimage: PaymentPreimage,
+ ) -> Result<PaymentId, PaymentSendFailure> {
+ self.send_spontaneous_payment(route, Some(payment_preimage))
+ .map(|(_, payment_id)| payment_id)
+ }
+
fn retry_payment(
&self, route: &Route, payment_id: PaymentId
) -> Result<(), PaymentSendFailure> {
use lightning::ln::features::InitFeatures;
use lightning::ln::msgs::ChannelMessageHandler;
use lightning::routing::router::{Payee, RouteParameters, find_route};
- use lightning::routing::scorer::Scorer;
use lightning::util::events::MessageSendEventsProvider;
use lightning::util::test_utils;
#[test]
assert_eq!(invoice.min_final_cltv_expiry(), MIN_FINAL_CLTV_EXPIRY as u64);
assert_eq!(invoice.description(), InvoiceDescription::Direct(&Description("test".to_string())));
- let payee = Payee::new(invoice.recover_payee_pub_key())
+ let payee = Payee::from_node_id(invoice.recover_payee_pub_key())
.with_features(invoice.features().unwrap().clone())
.with_route_hints(invoice.route_hints());
let params = RouteParameters {
final_cltv_expiry_delta: invoice.min_final_cltv_expiry() as u32,
};
let first_hops = nodes[0].node.list_usable_channels();
- let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
+ let network_graph = node_cfgs[0].network_graph;
let logger = test_utils::TestLogger::new();
- let scorer = Scorer::new(0);
+ let scorer = test_utils::TestScorer::with_fixed_penalty(0);
let route = find_route(
&nodes[0].node.get_our_node_id(), ¶ms, network_graph,
Some(&first_hops.iter().collect::<Vec<_>>()), &logger, &scorer,