X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Ftests%2Fmod.rs;h=b96760871fcc34032a31fdf271af4bccc013c5f2;hb=1fd6c674b15f5c942052d6d69e07a6b9e9d8979b;hp=13d34e955af5f2220d471ab5d0b8e025a9d74134;hpb=4c98806d62714fa4e26d58ced2504bd7b938db3d;p=rapid-gossip-sync-server diff --git a/src/tests/mod.rs b/src/tests/mod.rs index 13d34e9..b967608 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -12,7 +12,7 @@ use bitcoin::hashes::Hash; use bitcoin::hashes::sha256d::Hash as Sha256dHash; use hex_conservative::DisplayHex; use lightning::ln::features::{ChannelFeatures, NodeFeatures}; -use lightning::ln::msgs::{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement, UnsignedChannelAnnouncement, UnsignedChannelUpdate, UnsignedNodeAnnouncement}; +use lightning::ln::msgs::{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement, SocketAddress, UnsignedChannelAnnouncement, UnsignedChannelUpdate, UnsignedNodeAnnouncement}; use lightning::routing::gossip::{NetworkGraph, NodeAlias, NodeId}; use lightning::util::ser::Writeable; use lightning_rapid_gossip_sync::RapidGossipSync; @@ -47,10 +47,10 @@ pub(crate) fn db_test_schema() -> String { }) } -fn generate_node_announcement() -> NodeAnnouncement { +fn generate_node_announcement(private_key: Option) -> NodeAnnouncement { let secp_context = Secp256k1::new(); - let random_private_key = SecretKey::from_slice(&[1; 32]).unwrap(); + let random_private_key = private_key.unwrap_or(SecretKey::from_slice(&[1; 32]).unwrap()); let random_public_key = random_private_key.public_key(&secp_context); let node_id = NodeId::from_pubkey(&random_public_key); @@ -302,9 +302,28 @@ async fn test_node_announcement_persistence() { let (mut persister, receiver) = GossipPersister::new(network_graph_arc.clone(), logger.clone()); { // seed the db - let announcement = generate_node_announcement(); + let mut announcement = generate_node_announcement(None); receiver.send(GossipMessage::NodeAnnouncement(announcement.clone(), None)).await.unwrap(); + receiver.send(GossipMessage::NodeAnnouncement(announcement.clone(), Some(12345))).await.unwrap(); + + { + // modify announcement to contain a bunch of addresses + announcement.contents.addresses.push(SocketAddress::Hostname { + hostname: "google.com".to_string().try_into().unwrap(), + port: 443, + }); + announcement.contents.addresses.push(SocketAddress::TcpIpV4 { addr: [127, 0, 0, 1], port: 9635 }); + announcement.contents.addresses.push(SocketAddress::TcpIpV6 { addr: [1; 16], port: 1337 }); + announcement.contents.addresses.push(SocketAddress::OnionV2([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])); + announcement.contents.addresses.push(SocketAddress::OnionV3 { + ed25519_pubkey: [1; 32], + checksum: 2, + version: 3, + port: 4, + }); + } receiver.send(GossipMessage::NodeAnnouncement(announcement, Some(12345))).await.unwrap(); + drop(receiver); persister.persist_gossip().await;