X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=lightning%2Fsrc%2Futil%2Ftest_utils.rs;h=0e9c20252cca9a1147960fc0866edf1f3a2d5d37;hb=4f84b05d31eb9725a648b6e65ef5a68bd59eb05b;hp=b436d0c13d9e93caadce620bf5d04bf25f576f2b;hpb=ea4ccf63c7b8a8af5107c536bb6ab01ee04cbdc4;p=rust-lightning diff --git a/lightning/src/util/test_utils.rs b/lightning/src/util/test_utils.rs index b436d0c1..0e9c2025 100644 --- a/lightning/src/util/test_utils.rs +++ b/lightning/src/util/test_utils.rs @@ -10,7 +10,7 @@ use ln::channelmonitor::HTLCUpdate; use util::enforcing_trait_impls::EnforcingChannelKeys; use util::events; use util::logger::{Logger, Level, Record}; -use util::ser::{Readable, ReadableArgs, Writer, Writeable}; +use util::ser::{Readable, Writer, Writeable}; use bitcoin::blockdata::transaction::Transaction; use bitcoin::blockdata::script::{Builder, Script}; @@ -22,8 +22,8 @@ use bitcoin::hash_types::{Txid, BlockHash}; use bitcoin::secp256k1::{SecretKey, PublicKey}; use std::time::{SystemTime, UNIX_EPOCH}; -use std::sync::{Arc,Mutex}; -use std::{mem}; +use std::sync::Mutex; +use std::mem; use std::collections::HashMap; pub struct TestVecWriter(pub Vec); @@ -49,14 +49,14 @@ impl chaininterface::FeeEstimator for TestFeeEstimator { pub struct TestChannelMonitor<'a> { pub added_monitors: Mutex)>>, pub latest_monitor_update_id: Mutex>, - pub simple_monitor: channelmonitor::SimpleManyChannelMonitor, + pub simple_monitor: channelmonitor::SimpleManyChannelMonitor, pub update_ret: Mutex>, // If this is set to Some(), after the next return, we'll always return this until update_ret // is changed: pub next_update_ret: Mutex>>, } impl<'a> TestChannelMonitor<'a> { - pub fn new(chain_monitor: Arc, broadcaster: &'a chaininterface::BroadcasterInterface, logger: Arc, fee_estimator: &'a TestFeeEstimator) -> Self { + pub fn new(chain_monitor: &'a chaininterface::ChainWatchInterface, broadcaster: &'a chaininterface::BroadcasterInterface, logger: &'a TestLogger, fee_estimator: &'a TestFeeEstimator) -> Self { Self { added_monitors: Mutex::new(Vec::new()), latest_monitor_update_id: Mutex::new(HashMap::new()), @@ -73,7 +73,7 @@ impl<'a> channelmonitor::ManyChannelMonitor for TestChanne let mut w = TestVecWriter(Vec::new()); monitor.write_for_disk(&mut w).unwrap(); let new_monitor = <(BlockHash, channelmonitor::ChannelMonitor)>::read( - &mut ::std::io::Cursor::new(&w.0), Arc::new(TestLogger::new())).unwrap().1; + &mut ::std::io::Cursor::new(&w.0)).unwrap().1; assert!(new_monitor == monitor); self.latest_monitor_update_id.lock().unwrap().insert(funding_txo.to_channel_id(), (funding_txo, monitor.get_latest_update_id())); self.added_monitors.lock().unwrap().push((funding_txo, monitor)); @@ -102,7 +102,7 @@ impl<'a> channelmonitor::ManyChannelMonitor for TestChanne w.0.clear(); monitor.write_for_disk(&mut w).unwrap(); let new_monitor = <(BlockHash, channelmonitor::ChannelMonitor)>::read( - &mut ::std::io::Cursor::new(&w.0), Arc::new(TestLogger::new())).unwrap().1; + &mut ::std::io::Cursor::new(&w.0)).unwrap().1; assert!(new_monitor == *monitor); self.added_monitors.lock().unwrap().push((funding_txo, new_monitor)); @@ -170,11 +170,20 @@ impl events::MessageSendEventsProvider for TestChannelMessageHandler { } } -pub struct TestRoutingMessageHandler {} +pub struct TestRoutingMessageHandler { + request_full_sync: bool, +} impl TestRoutingMessageHandler { pub fn new() -> Self { - TestRoutingMessageHandler {} + TestRoutingMessageHandler { + request_full_sync: false, + } + } + + pub fn set_request_full_sync(mut self) -> Self { + self.request_full_sync = true; + self } } impl msgs::RoutingMessageHandler for TestRoutingMessageHandler { @@ -195,7 +204,7 @@ impl msgs::RoutingMessageHandler for TestRoutingMessageHandler { Vec::new() } fn should_request_full_sync(&self, _node_id: &PublicKey) -> bool { - true + self.request_full_sync } } @@ -266,14 +275,17 @@ impl keysinterface::KeysInterface for TestKeysInterface { } impl TestKeysInterface { - pub fn new(seed: &[u8; 32], network: Network, logger: Arc) -> Self { + pub fn new(seed: &[u8; 32], network: Network) -> Self { let now = SystemTime::now().duration_since(UNIX_EPOCH).expect("Time went backwards"); Self { - backing: keysinterface::KeysManager::new(seed, network, logger, now.as_secs(), now.subsec_nanos()), + backing: keysinterface::KeysManager::new(seed, network, now.as_secs(), now.subsec_nanos()), override_session_priv: Mutex::new(None), override_channel_id_priv: Mutex::new(None), } } + pub fn derive_channel_keys(&self, channel_value_satoshis: u64, user_id_1: u64, user_id_2: u64) -> EnforcingChannelKeys { + EnforcingChannelKeys::new(self.backing.derive_channel_keys(channel_value_satoshis, user_id_1, user_id_2)) + } } pub struct TestChainWatcher {