@@ -48,6 +48,7 @@ use lightning::routing::router::{Route, RouteHop};
48
48
49
49
50
50
use utils:: test_logger;
51
+ use utils:: test_persister:: TestPersister ;
51
52
52
53
use bitcoin:: secp256k1:: key:: { PublicKey , SecretKey } ;
53
54
use bitcoin:: secp256k1:: Secp256k1 ;
@@ -84,7 +85,7 @@ impl Writer for VecWriter {
84
85
85
86
struct TestChainMonitor {
86
87
pub logger : Arc < dyn Logger > ,
87
- pub chain_monitor : Arc < chainmonitor:: ChainMonitor < EnforcingChannelKeys , Arc < dyn chain:: Filter > , Arc < TestBroadcaster > , Arc < FuzzEstimator > , Arc < dyn Logger > > > ,
88
+ pub chain_monitor : Arc < chainmonitor:: ChainMonitor < EnforcingChannelKeys , Arc < dyn chain:: Filter > , Arc < TestBroadcaster > , Arc < FuzzEstimator > , Arc < dyn Logger > , Arc < TestPersister > > > ,
88
89
pub update_ret : Mutex < Result < ( ) , channelmonitor:: ChannelMonitorUpdateErr > > ,
89
90
// If we reload a node with an old copy of ChannelMonitors, the ChannelManager deserialization
90
91
// logic will automatically force-close our channels for us (as we don't have an up-to-date
@@ -95,9 +96,9 @@ struct TestChainMonitor {
95
96
pub should_update_manager : atomic:: AtomicBool ,
96
97
}
97
98
impl TestChainMonitor {
98
- pub fn new ( broadcaster : Arc < TestBroadcaster > , logger : Arc < dyn Logger > , feeest : Arc < FuzzEstimator > ) -> Self {
99
+ pub fn new ( broadcaster : Arc < TestBroadcaster > , logger : Arc < dyn Logger > , feeest : Arc < FuzzEstimator > , persister : Arc < TestPersister > ) -> Self {
99
100
Self {
100
- chain_monitor : Arc :: new ( chainmonitor:: ChainMonitor :: new ( None , broadcaster, logger. clone ( ) , feeest) ) ,
101
+ chain_monitor : Arc :: new ( chainmonitor:: ChainMonitor :: new ( None , broadcaster, logger. clone ( ) , feeest, persister ) ) ,
101
102
logger,
102
103
update_ret : Mutex :: new ( Ok ( ( ) ) ) ,
103
104
latest_monitors : Mutex :: new ( HashMap :: new ( ) ) ,
@@ -110,7 +111,7 @@ impl chain::Watch for TestChainMonitor {
110
111
111
112
fn watch_channel ( & self , funding_txo : OutPoint , monitor : channelmonitor:: ChannelMonitor < EnforcingChannelKeys > ) -> Result < ( ) , channelmonitor:: ChannelMonitorUpdateErr > {
112
113
let mut ser = VecWriter ( Vec :: new ( ) ) ;
113
- monitor. write_for_disk ( & mut ser) . unwrap ( ) ;
114
+ monitor. serialize_for_disk ( & mut ser) . unwrap ( ) ;
114
115
if let Some ( _) = self . latest_monitors . lock ( ) . unwrap ( ) . insert ( funding_txo, ( monitor. get_latest_update_id ( ) , ser. 0 ) ) {
115
116
panic ! ( "Already had monitor pre-watch_channel" ) ;
116
117
}
@@ -127,9 +128,9 @@ impl chain::Watch for TestChainMonitor {
127
128
} ;
128
129
let mut deserialized_monitor = <( BlockHash , channelmonitor:: ChannelMonitor < EnforcingChannelKeys > ) >::
129
130
read ( & mut Cursor :: new ( & map_entry. get ( ) . 1 ) ) . unwrap ( ) . 1 ;
130
- deserialized_monitor. update_monitor ( update. clone ( ) , & & TestBroadcaster { } , & self . logger ) . unwrap ( ) ;
131
+ deserialized_monitor. update_monitor ( & update, & & TestBroadcaster { } , & self . logger ) . unwrap ( ) ;
131
132
let mut ser = VecWriter ( Vec :: new ( ) ) ;
132
- deserialized_monitor. write_for_disk ( & mut ser) . unwrap ( ) ;
133
+ deserialized_monitor. serialize_for_disk ( & mut ser) . unwrap ( ) ;
133
134
map_entry. insert ( ( update. update_id , ser. 0 ) ) ;
134
135
self . should_update_manager . store ( true , atomic:: Ordering :: Relaxed ) ;
135
136
self . update_ret . lock ( ) . unwrap ( ) . clone ( )
@@ -192,7 +193,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
192
193
macro_rules! make_node {
193
194
( $node_id: expr) => { {
194
195
let logger: Arc <dyn Logger > = Arc :: new( test_logger:: TestLogger :: new( $node_id. to_string( ) , out. clone( ) ) ) ;
195
- let monitor = Arc :: new( TestChainMonitor :: new( broadcast. clone( ) , logger. clone( ) , fee_est. clone( ) ) ) ;
196
+ let monitor = Arc :: new( TestChainMonitor :: new( broadcast. clone( ) , logger. clone( ) , fee_est. clone( ) , Arc :: new ( TestPersister { } ) ) ) ;
196
197
197
198
let keys_manager = Arc :: new( KeyProvider { node_id: $node_id, rand_bytes_id: atomic:: AtomicU8 :: new( 0 ) } ) ;
198
199
let mut config = UserConfig :: default ( ) ;
@@ -207,7 +208,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
207
208
macro_rules! reload_node {
208
209
( $ser: expr, $node_id: expr, $old_monitors: expr) => { {
209
210
let logger: Arc <dyn Logger > = Arc :: new( test_logger:: TestLogger :: new( $node_id. to_string( ) , out. clone( ) ) ) ;
210
- let chain_monitor = Arc :: new( TestChainMonitor :: new( broadcast. clone( ) , logger. clone( ) , fee_est. clone( ) ) ) ;
211
+ let chain_monitor = Arc :: new( TestChainMonitor :: new( broadcast. clone( ) , logger. clone( ) , fee_est. clone( ) , Arc :: new ( TestPersister { } ) ) ) ;
211
212
212
213
let keys_manager = Arc :: new( KeyProvider { node_id: $node_id, rand_bytes_id: atomic:: AtomicU8 :: new( 0 ) } ) ;
213
214
let mut config = UserConfig :: default ( ) ;
0 commit comments