@@ -5,7 +5,7 @@ use bitcoin::blockdata::block::{Block, BlockHeader};
5
5
use bitcoin:: hash_types:: BlockHash ;
6
6
use bitcoin:: network:: constants:: Network ;
7
7
8
- use lightning:: chain:: ChainListener ;
8
+ use lightning:: chain;
9
9
10
10
/// Performs a one-time sync of chain listeners using a single *trusted* block source, bringing each
11
11
/// listener's view of the chain from its paired block hash to `block_source`'s best chain tip.
@@ -22,7 +22,6 @@ use lightning::chain::ChainListener;
22
22
/// use bitcoin::network::constants::Network;
23
23
///
24
24
/// use lightning::chain;
25
- /// use lightning::chain::ChainListener;
26
25
/// use lightning::chain::Watch;
27
26
/// use lightning::chain::chainmonitor::ChainMonitor;
28
27
/// use lightning::chain::channelmonitor;
@@ -83,8 +82,8 @@ use lightning::chain::ChainListener;
83
82
/// let mut cache = UnboundedCache::new();
84
83
/// let mut monitor_listener = (RefCell::new(monitor), &*tx_broadcaster, &*fee_estimator, &*logger);
85
84
/// let listeners = vec![
86
- /// (monitor_block_hash, &mut monitor_listener as &mut dyn ChainListener ),
87
- /// (manager_block_hash, &mut manager as &mut dyn ChainListener ),
85
+ /// (monitor_block_hash, &mut monitor_listener as &mut dyn chain::Listen ),
86
+ /// (manager_block_hash, &mut manager as &mut dyn chain::Listen ),
88
87
/// ];
89
88
/// let chain_tip =
90
89
/// init::sync_listeners(block_source, Network::Bitcoin, &mut cache, listeners).await.unwrap();
@@ -105,7 +104,7 @@ pub async fn sync_listeners<B: BlockSource, C: Cache>(
105
104
block_source : & mut B ,
106
105
network : Network ,
107
106
header_cache : & mut C ,
108
- mut chain_listeners : Vec < ( BlockHash , & mut dyn ChainListener ) > ,
107
+ mut chain_listeners : Vec < ( BlockHash , & mut dyn chain :: Listen ) > ,
109
108
) -> BlockSourceResult < ValidatedBlockHeader > {
110
109
let ( best_block_hash, best_block_height) = block_source. get_best_block ( ) . await ?;
111
110
let new_header = block_source
@@ -181,9 +180,9 @@ impl<'a, C: Cache> Cache for ReadOnlyCache<'a, C> {
181
180
}
182
181
183
182
/// Wrapper for supporting dynamically sized chain listeners.
184
- struct DynamicChainListener < ' a > ( & ' a mut dyn ChainListener ) ;
183
+ struct DynamicChainListener < ' a > ( & ' a mut dyn chain :: Listen ) ;
185
184
186
- impl < ' a > ChainListener for DynamicChainListener < ' a > {
185
+ impl < ' a > chain :: Listen for DynamicChainListener < ' a > {
187
186
fn block_connected ( & self , _block : & Block , _height : u32 ) {
188
187
unreachable ! ( )
189
188
}
@@ -194,9 +193,9 @@ impl<'a> ChainListener for DynamicChainListener<'a> {
194
193
}
195
194
196
195
/// A set of dynamically sized chain listeners, each paired with a starting block height.
197
- struct ChainListenerSet < ' a > ( Vec < ( u32 , & ' a mut dyn ChainListener ) > ) ;
196
+ struct ChainListenerSet < ' a > ( Vec < ( u32 , & ' a mut dyn chain :: Listen ) > ) ;
198
197
199
- impl < ' a > ChainListener for ChainListenerSet < ' a > {
198
+ impl < ' a > chain :: Listen for ChainListenerSet < ' a > {
200
199
fn block_connected ( & self , block : & Block , height : u32 ) {
201
200
for ( starting_height, chain_listener) in self . 0 . iter ( ) {
202
201
if height > * starting_height {
@@ -232,9 +231,9 @@ mod tests {
232
231
. expect_block_connected ( * chain. at_height ( 4 ) ) ;
233
232
234
233
let listeners = vec ! [
235
- ( chain. at_height( 1 ) . block_hash, & mut listener_1 as & mut dyn ChainListener ) ,
236
- ( chain. at_height( 2 ) . block_hash, & mut listener_2 as & mut dyn ChainListener ) ,
237
- ( chain. at_height( 3 ) . block_hash, & mut listener_3 as & mut dyn ChainListener ) ,
234
+ ( chain. at_height( 1 ) . block_hash, & mut listener_1 as & mut dyn chain :: Listen ) ,
235
+ ( chain. at_height( 2 ) . block_hash, & mut listener_2 as & mut dyn chain :: Listen ) ,
236
+ ( chain. at_height( 3 ) . block_hash, & mut listener_3 as & mut dyn chain :: Listen ) ,
238
237
] ;
239
238
let mut cache = chain. header_cache ( 0 ..=4 ) ;
240
239
match sync_listeners ( & mut chain, Network :: Bitcoin , & mut cache, listeners) . await {
@@ -267,9 +266,9 @@ mod tests {
267
266
. expect_block_connected ( * main_chain. at_height ( 4 ) ) ;
268
267
269
268
let listeners = vec ! [
270
- ( fork_chain_1. tip( ) . block_hash, & mut listener_1 as & mut dyn ChainListener ) ,
271
- ( fork_chain_2. tip( ) . block_hash, & mut listener_2 as & mut dyn ChainListener ) ,
272
- ( fork_chain_3. tip( ) . block_hash, & mut listener_3 as & mut dyn ChainListener ) ,
269
+ ( fork_chain_1. tip( ) . block_hash, & mut listener_1 as & mut dyn chain :: Listen ) ,
270
+ ( fork_chain_2. tip( ) . block_hash, & mut listener_2 as & mut dyn chain :: Listen ) ,
271
+ ( fork_chain_3. tip( ) . block_hash, & mut listener_3 as & mut dyn chain :: Listen ) ,
273
272
] ;
274
273
let mut cache = fork_chain_1. header_cache ( 2 ..=4 ) ;
275
274
cache. extend ( fork_chain_2. header_cache ( 3 ..=4 ) ) ;
@@ -310,9 +309,9 @@ mod tests {
310
309
. expect_block_connected ( * main_chain. at_height ( 4 ) ) ;
311
310
312
311
let listeners = vec ! [
313
- ( fork_chain_1. tip( ) . block_hash, & mut listener_1 as & mut dyn ChainListener ) ,
314
- ( fork_chain_2. tip( ) . block_hash, & mut listener_2 as & mut dyn ChainListener ) ,
315
- ( fork_chain_3. tip( ) . block_hash, & mut listener_3 as & mut dyn ChainListener ) ,
312
+ ( fork_chain_1. tip( ) . block_hash, & mut listener_1 as & mut dyn chain :: Listen ) ,
313
+ ( fork_chain_2. tip( ) . block_hash, & mut listener_2 as & mut dyn chain :: Listen ) ,
314
+ ( fork_chain_3. tip( ) . block_hash, & mut listener_3 as & mut dyn chain :: Listen ) ,
316
315
] ;
317
316
let mut cache = fork_chain_1. header_cache ( 2 ..=4 ) ;
318
317
cache. extend ( fork_chain_2. header_cache ( 3 ..=4 ) ) ;
@@ -334,7 +333,7 @@ mod tests {
334
333
. expect_block_disconnected ( * old_tip)
335
334
. expect_block_connected ( * new_tip) ;
336
335
337
- let listeners = vec ! [ ( old_tip. block_hash, & mut listener as & mut dyn ChainListener ) ] ;
336
+ let listeners = vec ! [ ( old_tip. block_hash, & mut listener as & mut dyn chain :: Listen ) ] ;
338
337
let mut cache = fork_chain. header_cache ( 2 ..=2 ) ;
339
338
match sync_listeners ( & mut main_chain, Network :: Bitcoin , & mut cache, listeners) . await {
340
339
Ok ( _) => {
0 commit comments