mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-23 14:50:45 +01:00
Remove InvoicePayer and replace with util methods
This commit is contained in:
parent
760ab65dbd
commit
b28bfd382b
3 changed files with 243 additions and 2267 deletions
|
@ -659,7 +659,7 @@ mod tests {
|
|||
use bitcoin::secp256k1::{SecretKey, PublicKey, Secp256k1};
|
||||
use lightning::chain::{BestBlock, Confirm, chainmonitor};
|
||||
use lightning::chain::channelmonitor::ANTI_REORG_DELAY;
|
||||
use lightning::chain::keysinterface::{InMemorySigner, EntropySource, KeysManager};
|
||||
use lightning::chain::keysinterface::{InMemorySigner, KeysManager};
|
||||
use lightning::chain::transaction::OutPoint;
|
||||
use lightning::get_event_msg;
|
||||
use lightning::ln::PaymentHash;
|
||||
|
@ -676,7 +676,6 @@ mod tests {
|
|||
use lightning::util::ser::Writeable;
|
||||
use lightning::util::test_utils;
|
||||
use lightning::util::persist::KVStorePersister;
|
||||
use lightning_invoice::payment::{InvoicePayer, Retry};
|
||||
use lightning_persister::FilesystemPersister;
|
||||
use std::collections::VecDeque;
|
||||
use std::fs;
|
||||
|
@ -1326,22 +1325,6 @@ mod tests {
|
|||
assert_eq!(network_graph.read_only().channels().len(), 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invoice_payer() {
|
||||
let keys_manager = test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
|
||||
let random_seed_bytes = keys_manager.get_secure_random_bytes();
|
||||
let nodes = create_nodes(2, "test_invoice_payer".to_string());
|
||||
|
||||
// Initiate the background processors to watch each node.
|
||||
let data_dir = nodes[0].persister.get_data_dir();
|
||||
let persister = Arc::new(Persister::new(data_dir));
|
||||
let router = Arc::new(DefaultRouter::new(Arc::clone(&nodes[0].network_graph), Arc::clone(&nodes[0].logger), random_seed_bytes, Arc::clone(&nodes[0].scorer)));
|
||||
let invoice_payer = Arc::new(InvoicePayer::new(Arc::clone(&nodes[0].node), router, Arc::clone(&nodes[0].logger), |_: _| {}, Retry::Attempts(2)));
|
||||
let event_handler = Arc::clone(&invoice_payer);
|
||||
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].no_gossip_sync(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(nodes[0].scorer.clone()));
|
||||
assert!(bg_processor.stop().is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_payment_path_scoring() {
|
||||
// Ensure that we update the scorer when relevant events are processed. In this case, we ensure
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,6 @@
|
|||
//! Convenient utilities to create an invoice.
|
||||
|
||||
use crate::{CreationError, Currency, Invoice, InvoiceBuilder, SignOrCreationError};
|
||||
use crate::payment::Payer;
|
||||
|
||||
use crate::{prelude::*, Description, InvoiceDescription, Sha256};
|
||||
use bech32::ToBase32;
|
||||
|
@ -9,12 +8,12 @@ use bitcoin_hashes::Hash;
|
|||
use lightning::chain;
|
||||
use lightning::chain::chaininterface::{BroadcasterInterface, FeeEstimator};
|
||||
use lightning::chain::keysinterface::{Recipient, NodeSigner, SignerProvider, EntropySource};
|
||||
use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
|
||||
use lightning::ln::channelmanager::{ChannelDetails, ChannelManager, PaymentId, PaymentSendFailure, MIN_FINAL_CLTV_EXPIRY_DELTA};
|
||||
use lightning::ln::{PaymentHash, PaymentSecret};
|
||||
use lightning::ln::channelmanager::{ChannelDetails, ChannelManager, MIN_FINAL_CLTV_EXPIRY_DELTA};
|
||||
use lightning::ln::channelmanager::{PhantomRouteHints, MIN_CLTV_EXPIRY_DELTA};
|
||||
use lightning::ln::inbound_payment::{create, create_from_hash, ExpandedKey};
|
||||
use lightning::routing::gossip::RoutingFees;
|
||||
use lightning::routing::router::{InFlightHtlcs, Route, RouteHint, RouteHintHop, Router};
|
||||
use lightning::routing::router::{RouteHint, RouteHintHop, Router};
|
||||
use lightning::util::logger::Logger;
|
||||
use secp256k1::PublicKey;
|
||||
use core::ops::Deref;
|
||||
|
@ -634,51 +633,6 @@ fn filter_channels<L: Deref>(
|
|||
.collect::<Vec<RouteHint>>()
|
||||
}
|
||||
|
||||
impl<M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref> Payer for ChannelManager<M, T, ES, NS, SP, F, R, L>
|
||||
where
|
||||
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
|
||||
T::Target: BroadcasterInterface,
|
||||
ES::Target: EntropySource,
|
||||
NS::Target: NodeSigner,
|
||||
SP::Target: SignerProvider,
|
||||
F::Target: FeeEstimator,
|
||||
R::Target: Router,
|
||||
L::Target: Logger,
|
||||
{
|
||||
fn node_id(&self) -> PublicKey {
|
||||
self.get_our_node_id()
|
||||
}
|
||||
|
||||
fn first_hops(&self) -> Vec<ChannelDetails> {
|
||||
self.list_usable_channels()
|
||||
}
|
||||
|
||||
fn send_payment(
|
||||
&self, route: &Route, payment_hash: PaymentHash, payment_secret: &Option<PaymentSecret>,
|
||||
payment_id: PaymentId
|
||||
) -> Result<(), PaymentSendFailure> {
|
||||
self.send_payment(route, payment_hash, payment_secret, payment_id)
|
||||
}
|
||||
|
||||
fn send_spontaneous_payment(
|
||||
&self, route: &Route, payment_preimage: PaymentPreimage, payment_id: PaymentId,
|
||||
) -> Result<(), PaymentSendFailure> {
|
||||
self.send_spontaneous_payment(route, Some(payment_preimage), payment_id).map(|_| ())
|
||||
}
|
||||
|
||||
fn retry_payment(
|
||||
&self, route: &Route, payment_id: PaymentId
|
||||
) -> Result<(), PaymentSendFailure> {
|
||||
self.retry_payment(route, payment_id)
|
||||
}
|
||||
|
||||
fn abandon_payment(&self, payment_id: PaymentId) {
|
||||
self.abandon_payment(payment_id)
|
||||
}
|
||||
|
||||
fn inflight_htlcs(&self) -> InFlightHtlcs { self.compute_inflight_htlcs() }
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use core::time::Duration;
|
||||
|
|
Loading…
Add table
Reference in a new issue