@@ -30,7 +30,7 @@ use bitcoin::hashes::sha256::Hash as Sha256;
3030use bitcoin:: hash_types:: { BlockHash , WPubkeyHash } ;
3131
3232use lightning:: chain;
33- use lightning:: chain:: { BestBlock , ChannelMonitorUpdateErr , chainmonitor, channelmonitor, Confirm , Watch } ;
33+ use lightning:: chain:: { BestBlock , ChannelMonitorUpdateResult , chainmonitor, channelmonitor, Confirm , Watch } ;
3434use lightning:: chain:: channelmonitor:: { ChannelMonitor , MonitorEvent } ;
3535use lightning:: chain:: transaction:: OutPoint ;
3636use lightning:: chain:: chaininterface:: { BroadcasterInterface , ConfirmationTarget , FeeEstimator } ;
@@ -122,7 +122,7 @@ impl TestChainMonitor {
122122 }
123123}
124124impl chain:: Watch < EnforcingSigner > for TestChainMonitor {
125- fn watch_channel ( & self , funding_txo : OutPoint , monitor : channelmonitor:: ChannelMonitor < EnforcingSigner > ) -> Result < ( ) , chain:: ChannelMonitorUpdateErr > {
125+ fn watch_channel ( & self , funding_txo : OutPoint , monitor : channelmonitor:: ChannelMonitor < EnforcingSigner > ) -> chain:: ChannelMonitorUpdateResult {
126126 let mut ser = VecWriter ( Vec :: new ( ) ) ;
127127 monitor. write ( & mut ser) . unwrap ( ) ;
128128 if let Some ( _) = self . latest_monitors . lock ( ) . unwrap ( ) . insert ( funding_txo, ( monitor. get_latest_update_id ( ) , ser. 0 ) ) {
@@ -132,7 +132,7 @@ impl chain::Watch<EnforcingSigner> for TestChainMonitor {
132132 self . chain_monitor . watch_channel ( funding_txo, monitor)
133133 }
134134
135- fn update_channel ( & self , funding_txo : OutPoint , update : channelmonitor:: ChannelMonitorUpdate ) -> Result < ( ) , chain:: ChannelMonitorUpdateErr > {
135+ fn update_channel ( & self , funding_txo : OutPoint , update : channelmonitor:: ChannelMonitorUpdate ) -> chain:: ChannelMonitorUpdateResult {
136136 let mut map_lock = self . latest_monitors . lock ( ) . unwrap ( ) ;
137137 let mut map_entry = match map_lock. entry ( funding_txo) {
138138 hash_map:: Entry :: Occupied ( entry) => entry,
@@ -353,7 +353,9 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
353353 let logger: Arc <dyn Logger > = Arc :: new( test_logger:: TestLogger :: new( $node_id. to_string( ) , out. clone( ) ) ) ;
354354 let keys_manager = Arc :: new( KeyProvider { node_id: $node_id, rand_bytes_id: atomic:: AtomicU32 :: new( 0 ) , enforcement_states: Mutex :: new( HashMap :: new( ) ) } ) ;
355355 let monitor = Arc :: new( TestChainMonitor :: new( broadcast. clone( ) , logger. clone( ) , $fee_estimator. clone( ) ,
356- Arc :: new( TestPersister { update_ret: Mutex :: new( Ok ( ( ) ) ) } ) , Arc :: clone( & keys_manager) ) ) ;
356+ Arc :: new( TestPersister {
357+ update_ret: Mutex :: new( ChannelMonitorUpdateResult :: UpdateComplete )
358+ } ) , Arc :: clone( & keys_manager) ) ) ;
357359
358360 let mut config = UserConfig :: default ( ) ;
359361 config. channel_config. forwarding_fee_proportional_millionths = 0 ;
@@ -373,7 +375,9 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
373375 let keys_manager = Arc :: clone( & $keys_manager) ;
374376 let logger: Arc <dyn Logger > = Arc :: new( test_logger:: TestLogger :: new( $node_id. to_string( ) , out. clone( ) ) ) ;
375377 let chain_monitor = Arc :: new( TestChainMonitor :: new( broadcast. clone( ) , logger. clone( ) , $fee_estimator. clone( ) ,
376- Arc :: new( TestPersister { update_ret: Mutex :: new( Ok ( ( ) ) ) } ) , Arc :: clone( & $keys_manager) ) ) ;
378+ Arc :: new( TestPersister {
379+ update_ret: Mutex :: new( ChannelMonitorUpdateResult :: UpdateComplete )
380+ } ) , Arc :: clone( & $keys_manager) ) ) ;
377381
378382 let mut config = UserConfig :: default ( ) ;
379383 config. channel_config. forwarding_fee_proportional_millionths = 0 ;
@@ -402,7 +406,8 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
402406
403407 let res = ( <( BlockHash , ChanMan ) >:: read( & mut Cursor :: new( & $ser. 0 ) , read_args) . expect( "Failed to read manager" ) . 1 , chain_monitor. clone( ) ) ;
404408 for ( funding_txo, mon) in monitors. drain( ) {
405- assert!( chain_monitor. chain_monitor. watch_channel( funding_txo, mon) . is_ok( ) ) ;
409+ assert_eq!( chain_monitor. chain_monitor. watch_channel( funding_txo, mon) ,
410+ ChannelMonitorUpdateResult :: UpdateComplete ) ;
406411 }
407412 res
408413 } }
@@ -878,12 +883,12 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
878883 // bit-twiddling mutations to have similar effects. This is probably overkill, but no
879884 // harm in doing so.
880885
881- 0x00 => * monitor_a. persister . update_ret . lock ( ) . unwrap ( ) = Err ( ChannelMonitorUpdateErr :: TemporaryFailure ) ,
882- 0x01 => * monitor_b. persister . update_ret . lock ( ) . unwrap ( ) = Err ( ChannelMonitorUpdateErr :: TemporaryFailure ) ,
883- 0x02 => * monitor_c. persister . update_ret . lock ( ) . unwrap ( ) = Err ( ChannelMonitorUpdateErr :: TemporaryFailure ) ,
884- 0x04 => * monitor_a. persister . update_ret . lock ( ) . unwrap ( ) = Ok ( ( ) ) ,
885- 0x05 => * monitor_b. persister . update_ret . lock ( ) . unwrap ( ) = Ok ( ( ) ) ,
886- 0x06 => * monitor_c. persister . update_ret . lock ( ) . unwrap ( ) = Ok ( ( ) ) ,
886+ 0x00 => * monitor_a. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateInProgress ,
887+ 0x01 => * monitor_b. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateInProgress ,
888+ 0x02 => * monitor_c. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateInProgress ,
889+ 0x04 => * monitor_a. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateComplete ,
890+ 0x05 => * monitor_b. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateComplete ,
891+ 0x06 => * monitor_c. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateComplete ,
887892
888893 0x08 => {
889894 if let Some ( ( id, _) ) = monitor_a. latest_monitors . lock ( ) . unwrap ( ) . get ( & chan_1_funding) {
@@ -1108,9 +1113,9 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
11081113 // after we resolve all pending events.
11091114 // First make sure there are no pending monitor updates, resetting the error state
11101115 // and calling force_channel_monitor_updated for each monitor.
1111- * monitor_a. persister . update_ret . lock ( ) . unwrap ( ) = Ok ( ( ) ) ;
1112- * monitor_b. persister . update_ret . lock ( ) . unwrap ( ) = Ok ( ( ) ) ;
1113- * monitor_c. persister . update_ret . lock ( ) . unwrap ( ) = Ok ( ( ) ) ;
1116+ * monitor_a. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateComplete ;
1117+ * monitor_b. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateComplete ;
1118+ * monitor_c. persister . update_ret . lock ( ) . unwrap ( ) = ChannelMonitorUpdateResult :: UpdateComplete ;
11141119
11151120 if let Some ( ( id, _) ) = monitor_a. latest_monitors . lock ( ) . unwrap ( ) . get ( & chan_1_funding) {
11161121 monitor_a. chain_monitor . force_channel_monitor_updated ( chan_1_funding, * id) ;
0 commit comments