-
-use crate::{config, TestLogger};
-use crate::downloader::{GossipCounter, GossipRouter};
-use crate::types::{DetectedGossipMessage, GossipChainAccess, GossipMessage, GossipPeerManager};
-use crate::verifier::ChainVerifier;
-
-pub(crate) async fn download_gossip(persistence_sender: mpsc::Sender<DetectedGossipMessage>, network_graph: Arc<NetworkGraph<Arc<TestLogger>>>) {
- let mut key = [0; 32];
- let mut random_data = [0; 32];
- thread_rng().fill_bytes(&mut key);
- thread_rng().fill_bytes(&mut random_data);
- let our_node_secret = SecretKey::from_slice(&key).unwrap();
-
- let _arc_chain_access = None::<GossipChainAccess>;
- let arc_chain_access = Some(Arc::new(ChainVerifier::new()));
- let ignorer = IgnoringMessageHandler {};
- let arc_ignorer = Arc::new(ignorer);
-
- let errorer = ErroringMessageHandler::new();
- let arc_errorer = Arc::new(errorer);
-
- let logger = TestLogger::new();
- let arc_logger = Arc::new(logger);
-
- let router = P2PGossipSync::new(
- network_graph.clone(),
- arc_chain_access,
- Arc::clone(&arc_logger),
- );
- let arc_router = Arc::new(router);
- let wrapped_router = GossipRouter {
- native_router: arc_router,
- counter: RwLock::new(GossipCounter::new()),
- sender: persistence_sender.clone(),
- };
- let arc_wrapped_router = Arc::new(wrapped_router);
+use tokio::task::JoinSet;
+
+use crate::config;
+use crate::downloader::GossipRouter;
+use crate::types::{GossipMessage, GossipPeerManager};
+
+pub(crate) async fn download_gossip<L: Deref + Clone + Send + Sync + 'static>(persistence_sender: mpsc::Sender<GossipMessage>,
+ completion_sender: mpsc::Sender<()>,
+ network_graph: Arc<NetworkGraph<L>>,
+ logger: L,
+) where L::Target: Logger {
+ let mut key = [42; 32];
+ let mut random_data = [43; 32];
+ // Get something psuedo-random from std.
+ let mut key_hasher = RandomState::new().build_hasher();
+ key_hasher.write_u8(1);
+ key[0..8].copy_from_slice(&key_hasher.finish().to_ne_bytes());
+ let mut rand_hasher = RandomState::new().build_hasher();
+ rand_hasher.write_u8(2);
+ random_data[0..8].copy_from_slice(&rand_hasher.finish().to_ne_bytes());
+
+ let keys_manager = Arc::new(KeysManager::new(&key, 0xdeadbeef, 0xdeadbeef));
+
+ let router = Arc::new(GossipRouter::new(network_graph, persistence_sender.clone(), logger.clone()));