Use `crate::prelude::*` rather than specific imports
[rust-lightning] / lightning / src / routing / test_utils.rs
index d0e44eb214cf4fe3d43a5a8c52b6b6e340a9f2b9..6aca76a21678ceabc25f3e66ded06c96b1f883aa 100644 (file)
@@ -9,28 +9,26 @@
 
 use crate::routing::gossip::{NetworkGraph, NodeAlias, P2PGossipSync};
 use crate::ln::features::{ChannelFeatures, NodeFeatures};
-use crate::ln::msgs::{UnsignedChannelAnnouncement, ChannelAnnouncement, RoutingMessageHandler,
-       NodeAnnouncement, UnsignedNodeAnnouncement, ChannelUpdate, UnsignedChannelUpdate, MAX_VALUE_MSAT};
+use crate::ln::msgs::{ChannelAnnouncement, ChannelUpdate, MAX_VALUE_MSAT, NodeAnnouncement, RoutingMessageHandler, SocketAddress, UnsignedChannelAnnouncement, UnsignedChannelUpdate, UnsignedNodeAnnouncement};
 use crate::util::test_utils;
 use crate::util::ser::Writeable;
 
+use bitcoin::blockdata::constants::ChainHash;
 use bitcoin::hashes::sha256d::Hash as Sha256dHash;
 use bitcoin::hashes::Hash;
+use bitcoin::hashes::hex::FromHex;
 use bitcoin::network::constants::Network;
-use bitcoin::blockdata::constants::genesis_block;
-
-use hex;
-
 use bitcoin::secp256k1::{PublicKey,SecretKey};
 use bitcoin::secp256k1::{Secp256k1, All};
 
+#[allow(unused)]
 use crate::prelude::*;
 use crate::sync::{self, Arc};
 
 use crate::routing::gossip::NodeId;
 
 // Using the same keys for LN and BTC ids
-pub(super) fn add_channel(
+pub(crate) fn add_channel(
        gossip_sync: &P2PGossipSync<Arc<NetworkGraph<Arc<test_utils::TestLogger>>>, Arc<test_utils::TestChainSource>, Arc<test_utils::TestLogger>>,
        secp_ctx: &Secp256k1<All>, node_1_privkey: &SecretKey, node_2_privkey: &SecretKey, features: ChannelFeatures, short_channel_id: u64
 ) {
@@ -39,7 +37,7 @@ pub(super) fn add_channel(
 
        let unsigned_announcement = UnsignedChannelAnnouncement {
                features,
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id,
                node_id_1,
                node_id_2,
@@ -62,7 +60,7 @@ pub(super) fn add_channel(
        };
 }
 
-pub(super) fn add_or_update_node(
+pub(crate) fn add_or_update_node(
        gossip_sync: &P2PGossipSync<Arc<NetworkGraph<Arc<test_utils::TestLogger>>>, Arc<test_utils::TestChainSource>, Arc<test_utils::TestLogger>>,
        secp_ctx: &Secp256k1<All>, node_privkey: &SecretKey, features: NodeFeatures, timestamp: u32
 ) {
@@ -73,7 +71,7 @@ pub(super) fn add_or_update_node(
                node_id,
                rgb: [0; 3],
                alias: NodeAlias([0; 32]),
-               addresses: Vec::new(),
+               addresses: vec![SocketAddress::TcpIpV4 { addr: [127, 0, 0, 1], port: 1000 }],
                excess_address_data: Vec::new(),
                excess_data: Vec::new(),
        };
@@ -89,7 +87,7 @@ pub(super) fn add_or_update_node(
        };
 }
 
-pub(super) fn update_channel(
+pub(crate) fn update_channel(
        gossip_sync: &P2PGossipSync<Arc<NetworkGraph<Arc<test_utils::TestLogger>>>, Arc<test_utils::TestChainSource>, Arc<test_utils::TestLogger>>,
        secp_ctx: &Secp256k1<All>, node_privkey: &SecretKey, update: UnsignedChannelUpdate
 ) {
@@ -107,12 +105,12 @@ pub(super) fn update_channel(
 
 pub(super) fn get_nodes(secp_ctx: &Secp256k1<All>) -> (SecretKey, PublicKey, Vec<SecretKey>, Vec<PublicKey>) {
        let privkeys: Vec<SecretKey> = (2..22).map(|i| {
-               SecretKey::from_slice(&hex::decode(format!("{:02x}", i).repeat(32)).unwrap()[..]).unwrap()
+               SecretKey::from_slice(&<Vec<u8>>::from_hex(&format!("{:02x}", i).repeat(32)).unwrap()[..]).unwrap()
        }).collect();
 
        let pubkeys = privkeys.iter().map(|secret| PublicKey::from_secret_key(&secp_ctx, secret)).collect();
 
-       let our_privkey = SecretKey::from_slice(&hex::decode("01".repeat(32)).unwrap()[..]).unwrap();
+       let our_privkey = SecretKey::from_slice(&<Vec<u8>>::from_hex(&"01".repeat(32)).unwrap()[..]).unwrap();
        let our_id = PublicKey::from_secret_key(&secp_ctx, &our_privkey);
 
        (our_privkey, our_id, privkeys, pubkeys)
@@ -154,7 +152,7 @@ pub(super) fn build_line_graph() -> (
                        add_channel(&gossip_sync, &secp_ctx, &cur_privkey, &next_privkey,
                                ChannelFeatures::from_le_bytes(id_to_feature_flags(1)), cur_short_channel_id);
                        update_channel(&gossip_sync, &secp_ctx, &cur_privkey, UnsignedChannelUpdate {
-                               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+                               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                                short_channel_id: cur_short_channel_id,
                                timestamp: idx as u32,
                                flags: 0,
@@ -166,7 +164,7 @@ pub(super) fn build_line_graph() -> (
                                excess_data: Vec::new()
                        });
                        update_channel(&gossip_sync, &secp_ctx, &next_privkey, UnsignedChannelUpdate {
-                               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+                               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                                short_channel_id: cur_short_channel_id,
                                timestamp: (idx as u32)+1,
                                flags: 1,
@@ -259,7 +257,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &our_privkey, &privkeys[0], ChannelFeatures::from_le_bytes(id_to_feature_flags(1)), 1);
        update_channel(&gossip_sync, &secp_ctx, &privkeys[0], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 1,
                timestamp: 1,
                flags: 1,
@@ -275,7 +273,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &our_privkey, &privkeys[1], ChannelFeatures::from_le_bytes(id_to_feature_flags(2)), 2);
        update_channel(&gossip_sync, &secp_ctx, &our_privkey, UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 2,
                timestamp: 1,
                flags: 0,
@@ -287,7 +285,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[1], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 2,
                timestamp: 1,
                flags: 1,
@@ -303,7 +301,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &our_privkey, &privkeys[7], ChannelFeatures::from_le_bytes(id_to_feature_flags(12)), 12);
        update_channel(&gossip_sync, &secp_ctx, &our_privkey, UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 12,
                timestamp: 1,
                flags: 0,
@@ -315,7 +313,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[7], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 12,
                timestamp: 1,
                flags: 1,
@@ -331,7 +329,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &privkeys[0], &privkeys[2], ChannelFeatures::from_le_bytes(id_to_feature_flags(3)), 3);
        update_channel(&gossip_sync, &secp_ctx, &privkeys[0], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 3,
                timestamp: 1,
                flags: 0,
@@ -343,7 +341,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[2], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 3,
                timestamp: 1,
                flags: 1,
@@ -357,7 +355,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &privkeys[1], &privkeys[2], ChannelFeatures::from_le_bytes(id_to_feature_flags(4)), 4);
        update_channel(&gossip_sync, &secp_ctx, &privkeys[1], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 4,
                timestamp: 1,
                flags: 0,
@@ -369,7 +367,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[2], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 4,
                timestamp: 1,
                flags: 1,
@@ -383,7 +381,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &privkeys[7], &privkeys[2], ChannelFeatures::from_le_bytes(id_to_feature_flags(13)), 13);
        update_channel(&gossip_sync, &secp_ctx, &privkeys[7], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 13,
                timestamp: 1,
                flags: 0,
@@ -395,7 +393,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[2], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 13,
                timestamp: 1,
                flags: 1,
@@ -411,7 +409,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &privkeys[2], &privkeys[4], ChannelFeatures::from_le_bytes(id_to_feature_flags(6)), 6);
        update_channel(&gossip_sync, &secp_ctx, &privkeys[2], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 6,
                timestamp: 1,
                flags: 0,
@@ -423,7 +421,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[4], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 6,
                timestamp: 1,
                flags: 1,
@@ -437,7 +435,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &privkeys[4], &privkeys[3], ChannelFeatures::from_le_bytes(id_to_feature_flags(11)), 11);
        update_channel(&gossip_sync, &secp_ctx, &privkeys[4], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 11,
                timestamp: 1,
                flags: 0,
@@ -449,7 +447,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[3], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 11,
                timestamp: 1,
                flags: 1,
@@ -467,7 +465,7 @@ pub(super) fn build_graph() -> (
 
        add_channel(&gossip_sync, &secp_ctx, &privkeys[2], &privkeys[5], ChannelFeatures::from_le_bytes(id_to_feature_flags(7)), 7);
        update_channel(&gossip_sync, &secp_ctx, &privkeys[2], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 7,
                timestamp: 1,
                flags: 0,
@@ -479,7 +477,7 @@ pub(super) fn build_graph() -> (
                excess_data: Vec::new()
        });
        update_channel(&gossip_sync, &secp_ctx, &privkeys[5], UnsignedChannelUpdate {
-               chain_hash: genesis_block(Network::Testnet).header.block_hash(),
+               chain_hash: ChainHash::using_genesis_block(Network::Testnet),
                short_channel_id: 7,
                timestamp: 1,
                flags: 1,