Upgrade to LDK 0.0.116-alpha1
[rapid-gossip-sync-server] / src / types.rs
1 use std::sync::Arc;
2 use std::ops::Deref;
3
4 use lightning::sign::KeysManager;
5 use lightning::ln::msgs::{ChannelAnnouncement, ChannelUpdate};
6 use lightning::ln::peer_handler::{ErroringMessageHandler, IgnoringMessageHandler, PeerManager};
7 use lightning::util::logger::{Logger, Record};
8
9 use crate::downloader::GossipRouter;
10 use crate::verifier::ChainVerifier;
11
12 pub(crate) type GossipChainAccess = Arc<ChainVerifier>;
13 pub(crate) type GossipPeerManager = Arc<PeerManager<lightning_net_tokio::SocketDescriptor, ErroringMessageHandler, Arc<GossipRouter>, IgnoringMessageHandler, TestLogger, IgnoringMessageHandler, Arc<KeysManager>>>;
14
15 #[derive(Debug)]
16 pub(crate) enum GossipMessage {
17         ChannelAnnouncement(ChannelAnnouncement),
18         ChannelUpdate(ChannelUpdate),
19 }
20
21 #[derive(Clone, Copy)]
22 pub(crate) struct TestLogger {}
23 impl Deref for TestLogger {
24         type Target = Self;
25         fn deref(&self) -> &Self { self }
26 }
27
28 impl TestLogger {
29         pub(crate) fn new() -> TestLogger {
30                 Self {}
31         }
32 }
33
34 impl Logger for TestLogger {
35         fn log(&self, record: &Record) {
36                 // TODO: allow log level threshold to be set
37                 println!("{:<5} [{} : {}, {}] {}", record.level.to_string(), record.module_path, record.file, record.line, record.args);
38         }
39 }