X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Ftest_utils.rs;h=b4d274f683cb5b414b9a174e781feb978600e815;hb=f4729075cbfef9f99e8316335dd1e8d15671674d;hp=43bb1ef930391d7966af82308d74aef1ad3e6073;hpb=12461fcba179a1b6726f5c2557d12cb1f1b33b25;p=rust-lightning diff --git a/lightning/src/util/test_utils.rs b/lightning/src/util/test_utils.rs index 43bb1ef9..b4d274f6 100644 --- a/lightning/src/util/test_utils.rs +++ b/lightning/src/util/test_utils.rs @@ -28,6 +28,7 @@ use bitcoin::blockdata::constants::genesis_block; use bitcoin::blockdata::transaction::{Transaction, TxOut}; use bitcoin::blockdata::script::{Builder, Script}; use bitcoin::blockdata::opcodes; +use bitcoin::blockdata::block::BlockHeader; use bitcoin::network::constants::Network; use bitcoin::hash_types::{BlockHash, Txid}; @@ -41,7 +42,6 @@ use core::time::Duration; use std::sync::{Mutex, Arc}; use core::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use core::{cmp, mem}; -use std::collections::{HashMap, HashSet, VecDeque}; use chain::keysinterface::InMemorySigner; pub struct TestVecWriter(pub Vec); @@ -201,9 +201,18 @@ impl channelmonitor::Persist for TestPersis pub struct TestBroadcaster { pub txn_broadcasted: Mutex>, + pub blocks: Arc>>, } impl chaininterface::BroadcasterInterface for TestBroadcaster { fn broadcast_transaction(&self, tx: &Transaction) { + assert!(tx.lock_time < 1_500_000_000); + if tx.lock_time > self.blocks.lock().unwrap().len() as u32 + 1 && tx.lock_time < 500_000_000 { + for inp in tx.input.iter() { + if inp.sequence != 0xffffffff { + panic!("We should never broadcast a transaction before its locktime ({})!", tx.lock_time); + } + } + } self.txn_broadcasted.lock().unwrap().push(tx.clone()); } }