@@ -30,7 +30,7 @@ use bitcoin::hashes::sha256::Hash as Sha256;
30
30
use bitcoin:: hash_types:: { BlockHash , WPubkeyHash } ;
31
31
32
32
use lightning:: chain;
33
- use lightning:: chain:: { BestBlock , ChannelMonitorUpdateErr , chainmonitor, channelmonitor, Confirm , Watch } ;
33
+ use lightning:: chain:: { BestBlock , ChannelMonitorUpdateResult , chainmonitor, channelmonitor, Confirm , Watch } ;
34
34
use lightning:: chain:: channelmonitor:: { ChannelMonitor , MonitorEvent } ;
35
35
use lightning:: chain:: transaction:: OutPoint ;
36
36
use lightning:: chain:: chaininterface:: { BroadcasterInterface , ConfirmationTarget , FeeEstimator } ;
@@ -122,7 +122,7 @@ impl TestChainMonitor {
122
122
}
123
123
}
124
124
impl 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 {
126
126
let mut ser = VecWriter ( Vec :: new ( ) ) ;
127
127
monitor. write ( & mut ser) . unwrap ( ) ;
128
128
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 {
132
132
self . chain_monitor . watch_channel ( funding_txo, monitor)
133
133
}
134
134
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 {
136
136
let mut map_lock = self . latest_monitors . lock ( ) . unwrap ( ) ;
137
137
let mut map_entry = match map_lock. entry ( funding_txo) {
138
138
hash_map:: Entry :: Occupied ( entry) => entry,
@@ -353,7 +353,9 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
353
353
let logger: Arc <dyn Logger > = Arc :: new( test_logger:: TestLogger :: new( $node_id. to_string( ) , out. clone( ) ) ) ;
354
354
let keys_manager = Arc :: new( KeyProvider { node_id: $node_id, rand_bytes_id: atomic:: AtomicU32 :: new( 0 ) , enforcement_states: Mutex :: new( HashMap :: new( ) ) } ) ;
355
355
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) ) ) ;
357
359
358
360
let mut config = UserConfig :: default ( ) ;
359
361
config. channel_config. forwarding_fee_proportional_millionths = 0 ;
@@ -373,7 +375,9 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
373
375
let keys_manager = Arc :: clone( & $keys_manager) ;
374
376
let logger: Arc <dyn Logger > = Arc :: new( test_logger:: TestLogger :: new( $node_id. to_string( ) , out. clone( ) ) ) ;
375
377
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) ) ) ;
377
381
378
382
let mut config = UserConfig :: default ( ) ;
379
383
config. channel_config. forwarding_fee_proportional_millionths = 0 ;
@@ -402,7 +406,8 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
402
406
403
407
let res = ( <( BlockHash , ChanMan ) >:: read( & mut Cursor :: new( & $ser. 0 ) , read_args) . expect( "Failed to read manager" ) . 1 , chain_monitor. clone( ) ) ;
404
408
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 ) ;
406
411
}
407
412
res
408
413
} }
@@ -878,12 +883,12 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
878
883
// bit-twiddling mutations to have similar effects. This is probably overkill, but no
879
884
// harm in doing so.
880
885
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 ,
887
892
888
893
0x08 => {
889
894
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) {
1108
1113
// after we resolve all pending events.
1109
1114
// First make sure there are no pending monitor updates, resetting the error state
1110
1115
// 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 ;
1114
1119
1115
1120
if let Some ( ( id, _) ) = monitor_a. latest_monitors . lock ( ) . unwrap ( ) . get ( & chan_1_funding) {
1116
1121
monitor_a. chain_monitor . force_channel_monitor_updated ( chan_1_funding, * id) ;
0 commit comments