Skip to content

Commit ba84f4b

Browse files
committed
f Move types to dedicated file
1 parent 4ec3fd2 commit ba84f4b

File tree

2 files changed

+106
-86
lines changed

2 files changed

+106
-86
lines changed

src/lib.rs

Lines changed: 9 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,29 @@ mod hex_utils;
3030
mod io_utils;
3131
mod logger;
3232
mod peer_store;
33+
mod types;
3334
mod wallet;
3435

3536
pub use error::Error;
3637
pub use event::Event;
3738
use event::{EventHandler, EventQueue};
3839
use peer_store::{PeerInfo, PeerInfoStorage};
39-
use wallet::{Wallet, WalletKeysManager};
40+
use types::{
41+
ChainMonitor, ChannelManager, GossipSync, InvoicePayer, KeysManager, NetworkGraph,
42+
OnionMessenger, PaymentInfoStorage, PeerManager, Router, Scorer,
43+
};
44+
pub use types::{PaymentInfo, PaymentStatus};
45+
use wallet::Wallet;
4046

4147
use logger::{log_error, log_given_level, log_info, log_internal, FilesystemLogger, Logger};
4248

43-
use lightning::chain::keysinterface::{EntropySource, InMemorySigner, NodeSigner, Recipient};
49+
use lightning::chain::keysinterface::{EntropySource, NodeSigner, Recipient};
4450
use lightning::chain::{chainmonitor, Access, BestBlock, Confirm, Watch};
4551
use lightning::ln::channelmanager;
4652
use lightning::ln::channelmanager::{ChainParameters, ChannelManagerReadArgs};
4753
use lightning::ln::peer_handler::{IgnoringMessageHandler, MessageHandler};
48-
use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
49-
use lightning::routing::gossip;
54+
use lightning::ln::{PaymentHash, PaymentPreimage};
5055
use lightning::routing::gossip::P2PGossipSync;
51-
use lightning::routing::scoring::ProbabilisticScorer;
5256

5357
use lightning::util::config::{ChannelHandshakeConfig, ChannelHandshakeLimits, UserConfig};
5458
use lightning::util::ser::ReadableArgs;
@@ -59,8 +63,6 @@ use lightning_persister::FilesystemPersister;
5963

6064
use lightning_transaction_sync::EsploraSyncClient;
6165

62-
use lightning_net_tokio::SocketDescriptor;
63-
6466
use lightning::routing::router::DefaultRouter;
6567
use lightning_invoice::{payment, Currency, Invoice};
6668

@@ -1039,82 +1041,3 @@ async fn do_connect_peer(
10391041
}
10401042
}
10411043
}
1042-
1043-
//
1044-
// Structs wrapping the particular information which should easily be
1045-
// understandable, parseable, and transformable, i.e., we'll try to avoid
1046-
// exposing too many technical detail here.
1047-
/// Represents a payment.
1048-
#[derive(Clone, Debug, PartialEq, Eq)]
1049-
pub struct PaymentInfo {
1050-
/// The pre-image used by the payment.
1051-
pub preimage: Option<PaymentPreimage>,
1052-
/// The secret used by the payment.
1053-
pub secret: Option<PaymentSecret>,
1054-
/// The status of the payment.
1055-
pub status: PaymentStatus,
1056-
/// The amount transferred.
1057-
pub amount_msat: Option<u64>,
1058-
}
1059-
1060-
/// Represents the current status of a payment.
1061-
#[derive(Clone, Debug, PartialEq, Eq)]
1062-
pub enum PaymentStatus {
1063-
/// The payment is still pending.
1064-
Pending,
1065-
/// The payment suceeded.
1066-
Succeeded,
1067-
/// The payment failed.
1068-
Failed,
1069-
}
1070-
1071-
type ChainMonitor = chainmonitor::ChainMonitor<
1072-
InMemorySigner,
1073-
Arc<EsploraSyncClient<Arc<FilesystemLogger>>>,
1074-
Arc<Wallet<bdk::sled::Tree>>,
1075-
Arc<Wallet<bdk::sled::Tree>>,
1076-
Arc<FilesystemLogger>,
1077-
Arc<FilesystemPersister>,
1078-
>;
1079-
1080-
pub(crate) type PeerManager = lightning::ln::peer_handler::PeerManager<
1081-
SocketDescriptor,
1082-
Arc<ChannelManager>,
1083-
Arc<GossipSync>,
1084-
Arc<OnionMessenger>,
1085-
Arc<FilesystemLogger>,
1086-
IgnoringMessageHandler,
1087-
>;
1088-
1089-
pub(crate) type ChannelManager = lightning::ln::channelmanager::ChannelManager<
1090-
Arc<ChainMonitor>,
1091-
Arc<Wallet<bdk::sled::Tree>>,
1092-
Arc<WalletKeysManager<bdk::sled::Tree>>,
1093-
Arc<WalletKeysManager<bdk::sled::Tree>>,
1094-
Arc<WalletKeysManager<bdk::sled::Tree>>,
1095-
Arc<Wallet<bdk::sled::Tree>>,
1096-
Arc<Router>,
1097-
Arc<FilesystemLogger>,
1098-
>;
1099-
1100-
pub(crate) type KeysManager = WalletKeysManager<bdk::sled::Tree>;
1101-
1102-
type InvoicePayer<F> =
1103-
payment::InvoicePayer<Arc<ChannelManager>, Arc<Router>, Arc<FilesystemLogger>, F>;
1104-
1105-
type Router = DefaultRouter<Arc<NetworkGraph>, Arc<FilesystemLogger>, Arc<Mutex<Scorer>>>;
1106-
type Scorer = ProbabilisticScorer<Arc<NetworkGraph>, Arc<FilesystemLogger>>;
1107-
1108-
type GossipSync =
1109-
P2PGossipSync<Arc<NetworkGraph>, Arc<dyn Access + Send + Sync>, Arc<FilesystemLogger>>;
1110-
1111-
pub(crate) type NetworkGraph = gossip::NetworkGraph<Arc<FilesystemLogger>>;
1112-
1113-
pub(crate) type PaymentInfoStorage = Mutex<HashMap<PaymentHash, PaymentInfo>>;
1114-
1115-
pub(crate) type OnionMessenger = lightning::onion_message::OnionMessenger<
1116-
Arc<WalletKeysManager<bdk::sled::Tree>>,
1117-
Arc<WalletKeysManager<bdk::sled::Tree>>,
1118-
Arc<FilesystemLogger>,
1119-
IgnoringMessageHandler,
1120-
>;

src/types.rs

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
use crate::logger::FilesystemLogger;
2+
use crate::wallet::{Wallet, WalletKeysManager};
3+
4+
use lightning::chain::keysinterface::InMemorySigner;
5+
use lightning::chain::{chainmonitor, Access};
6+
use lightning::ln::peer_handler::IgnoringMessageHandler;
7+
use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
8+
use lightning::routing::gossip;
9+
use lightning::routing::gossip::P2PGossipSync;
10+
use lightning::routing::router::DefaultRouter;
11+
use lightning::routing::scoring::ProbabilisticScorer;
12+
use lightning_invoice::payment;
13+
use lightning_net_tokio::SocketDescriptor;
14+
use lightning_persister::FilesystemPersister;
15+
use lightning_transaction_sync::EsploraSyncClient;
16+
17+
use std::collections::HashMap;
18+
use std::sync::{Arc, Mutex};
19+
20+
// Structs wrapping the particular information which should easily be
21+
// understandable, parseable, and transformable, i.e., we'll try to avoid
22+
// exposing too many technical detail here.
23+
/// Represents a payment.
24+
#[derive(Clone, Debug, PartialEq, Eq)]
25+
pub struct PaymentInfo {
26+
/// The pre-image used by the payment.
27+
pub preimage: Option<PaymentPreimage>,
28+
/// The secret used by the payment.
29+
pub secret: Option<PaymentSecret>,
30+
/// The status of the payment.
31+
pub status: PaymentStatus,
32+
/// The amount transferred.
33+
pub amount_msat: Option<u64>,
34+
}
35+
36+
/// Represents the current status of a payment.
37+
#[derive(Clone, Debug, PartialEq, Eq)]
38+
pub enum PaymentStatus {
39+
/// The payment is still pending.
40+
Pending,
41+
/// The payment suceeded.
42+
Succeeded,
43+
/// The payment failed.
44+
Failed,
45+
}
46+
47+
pub(crate) type ChainMonitor = chainmonitor::ChainMonitor<
48+
InMemorySigner,
49+
Arc<EsploraSyncClient<Arc<FilesystemLogger>>>,
50+
Arc<Wallet<bdk::sled::Tree>>,
51+
Arc<Wallet<bdk::sled::Tree>>,
52+
Arc<FilesystemLogger>,
53+
Arc<FilesystemPersister>,
54+
>;
55+
56+
pub(crate) type PeerManager = lightning::ln::peer_handler::PeerManager<
57+
SocketDescriptor,
58+
Arc<ChannelManager>,
59+
Arc<GossipSync>,
60+
Arc<OnionMessenger>,
61+
Arc<FilesystemLogger>,
62+
IgnoringMessageHandler,
63+
>;
64+
65+
pub(crate) type ChannelManager = lightning::ln::channelmanager::ChannelManager<
66+
Arc<ChainMonitor>,
67+
Arc<Wallet<bdk::sled::Tree>>,
68+
Arc<WalletKeysManager<bdk::sled::Tree>>,
69+
Arc<WalletKeysManager<bdk::sled::Tree>>,
70+
Arc<WalletKeysManager<bdk::sled::Tree>>,
71+
Arc<Wallet<bdk::sled::Tree>>,
72+
Arc<Router>,
73+
Arc<FilesystemLogger>,
74+
>;
75+
76+
pub(crate) type KeysManager = WalletKeysManager<bdk::sled::Tree>;
77+
78+
pub(crate) type InvoicePayer<F> =
79+
payment::InvoicePayer<Arc<ChannelManager>, Arc<Router>, Arc<FilesystemLogger>, F>;
80+
81+
pub(crate) type Router =
82+
DefaultRouter<Arc<NetworkGraph>, Arc<FilesystemLogger>, Arc<Mutex<Scorer>>>;
83+
pub(crate) type Scorer = ProbabilisticScorer<Arc<NetworkGraph>, Arc<FilesystemLogger>>;
84+
85+
pub(crate) type GossipSync =
86+
P2PGossipSync<Arc<NetworkGraph>, Arc<dyn Access + Send + Sync>, Arc<FilesystemLogger>>;
87+
88+
pub(crate) type NetworkGraph = gossip::NetworkGraph<Arc<FilesystemLogger>>;
89+
90+
pub(crate) type PaymentInfoStorage = Mutex<HashMap<PaymentHash, PaymentInfo>>;
91+
92+
pub(crate) type OnionMessenger = lightning::onion_message::OnionMessenger<
93+
Arc<WalletKeysManager<bdk::sled::Tree>>,
94+
Arc<WalletKeysManager<bdk::sled::Tree>>,
95+
Arc<FilesystemLogger>,
96+
IgnoringMessageHandler,
97+
>;

0 commit comments

Comments
 (0)