@@ -861,44 +861,23 @@ mod tests {
861861 #[ test]
862862 fn monitor_from_outpoint_works ( ) {
863863 let monitor_name1 = MonitorName :: from ( OutPoint {
864- txid : Txid :: from_hex (
865- "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" ,
866- )
867- . unwrap ( ) ,
864+ txid : Txid :: from_hex ( "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" ) . unwrap ( ) ,
868865 index : 1 ,
869866 } ) ;
870- assert_eq ! (
871- monitor_name1. as_str( ) ,
872- "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_1"
873- ) ;
867+ assert_eq ! ( monitor_name1. as_str( ) , "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_1" ) ;
874868
875869 let monitor_name2 = MonitorName :: from ( OutPoint {
876- txid : Txid :: from_hex (
877- "f33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeef" ,
878- )
879- . unwrap ( ) ,
870+ txid : Txid :: from_hex ( "f33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeef" ) . unwrap ( ) ,
880871 index : u16:: MAX ,
881872 } ) ;
882- assert_eq ! (
883- monitor_name2. as_str( ) ,
884- "f33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeef_65535"
885- ) ;
873+ assert_eq ! ( monitor_name2. as_str( ) , "f33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeef_65535" ) ;
886874 }
887875
888876 #[ test]
889877 fn bad_monitor_string_fails ( ) {
890- assert ! ( MonitorName :: new(
891- "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" . to_string( )
892- )
893- . is_err( ) ) ;
894- assert ! ( MonitorName :: new(
895- "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_65536" . to_string( )
896- )
897- . is_err( ) ) ;
898- assert ! ( MonitorName :: new(
899- "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_21" . to_string( )
900- )
901- . is_err( ) ) ;
878+ assert ! ( MonitorName :: new( "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" . to_string( ) ) . is_err( ) ) ;
879+ assert ! ( MonitorName :: new( "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_65536" . to_string( ) ) . is_err( ) ) ;
880+ assert ! ( MonitorName :: new( "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_21" . to_string( ) ) . is_err( ) ) ;
902881 }
903882
904883 // Exercise the `MonitorUpdatingPersister` with real channels and payments.
@@ -949,24 +928,18 @@ mod tests {
949928
950929 // Check that the persisted channel data is empty before any channels are
951930 // open.
952- let mut persisted_chan_data_0 = persister_0
953- . read_all_channel_monitors_with_updates ( & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator )
954- . unwrap ( ) ;
931+ let mut persisted_chan_data_0 = persister_0. read_all_channel_monitors_with_updates (
932+ & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator ) . unwrap ( ) ;
955933 assert_eq ! ( persisted_chan_data_0. len( ) , 0 ) ;
956- let mut persisted_chan_data_1 = persister_1
957- . read_all_channel_monitors_with_updates ( & broadcaster_1, & chanmon_cfgs[ 1 ] . fee_estimator )
958- . unwrap ( ) ;
934+ let mut persisted_chan_data_1 = persister_1. read_all_channel_monitors_with_updates (
935+ & broadcaster_1, & chanmon_cfgs[ 1 ] . fee_estimator ) . unwrap ( ) ;
959936 assert_eq ! ( persisted_chan_data_1. len( ) , 0 ) ;
960937
961938 // Helper to make sure the channel is on the expected update ID.
962939 macro_rules! check_persisted_data {
963940 ( $expected_update_id: expr) => {
964- persisted_chan_data_0 = persister_0
965- . read_all_channel_monitors_with_updates(
966- & broadcaster_0,
967- & chanmon_cfgs[ 0 ] . fee_estimator,
968- )
969- . unwrap( ) ;
941+ persisted_chan_data_0 = persister_0. read_all_channel_monitors_with_updates(
942+ & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator) . unwrap( ) ;
970943 // check that we stored only one monitor
971944 assert_eq!( persisted_chan_data_0. len( ) , 1 ) ;
972945 for ( _, mon) in persisted_chan_data_0. iter( ) {
@@ -977,42 +950,24 @@ mod tests {
977950 let ( _, cm_0) = persister_0. read_monitor( & monitor_name) . unwrap( ) ;
978951 if cm_0. get_latest_update_id( ) == $expected_update_id {
979952 assert_eq!(
980- persister_0
981- . kv_store
982- . list(
983- CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
984- monitor_name. as_str( )
985- )
986- . unwrap( )
987- . len( ) ,
953+ persister_0. kv_store. list( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
954+ monitor_name. as_str( ) ) . unwrap( ) . len( ) ,
988955 0 ,
989956 "updates stored when they shouldn't be in persister 0"
990957 ) ;
991958 }
992959 }
993- persisted_chan_data_1 = persister_1
994- . read_all_channel_monitors_with_updates(
995- & broadcaster_1,
996- & chanmon_cfgs[ 1 ] . fee_estimator,
997- )
998- . unwrap( ) ;
960+ persisted_chan_data_1 = persister_1. read_all_channel_monitors_with_updates(
961+ & broadcaster_1, & chanmon_cfgs[ 1 ] . fee_estimator) . unwrap( ) ;
999962 assert_eq!( persisted_chan_data_1. len( ) , 1 ) ;
1000963 for ( _, mon) in persisted_chan_data_1. iter( ) {
1001964 assert_eq!( mon. get_latest_update_id( ) , $expected_update_id) ;
1002965 let monitor_name = MonitorName :: from( mon. get_funding_txo( ) . 0 ) ;
1003966 let ( _, cm_1) = persister_1. read_monitor( & monitor_name) . unwrap( ) ;
1004- if $expected_update_id != CLOSED_CHANNEL_UPDATE_ID
1005- && cm_1. get_latest_update_id( ) == $expected_update_id
1006- {
967+ if $expected_update_id != CLOSED_CHANNEL_UPDATE_ID && cm_1. get_latest_update_id( ) == $expected_update_id {
1007968 assert_eq!(
1008- persister_1
1009- . kv_store
1010- . list(
1011- CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
1012- monitor_name. as_str( )
1013- )
1014- . unwrap( )
1015- . len( ) ,
969+ persister_1. kv_store. list( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
970+ monitor_name. as_str( ) ) . unwrap( ) . len( ) ,
1016971 0 ,
1017972 "updates stored when they shouldn't be in persister 1"
1018973 ) ;
@@ -1049,76 +1004,33 @@ mod tests {
10491004
10501005 // Force close because cooperative close doesn't result in any persisted
10511006 // updates.
1052- nodes[ 0 ]
1053- . node
1054- . force_close_broadcasting_latest_txn (
1055- & nodes[ 0 ] . node . list_channels ( ) [ 0 ] . channel_id ,
1056- & nodes[ 1 ] . node . get_our_node_id ( ) ,
1057- )
1058- . unwrap ( ) ;
1007+ nodes[ 0 ] . node . force_close_broadcasting_latest_txn ( & nodes[ 0 ] . node . list_channels ( ) [ 0 ] . channel_id , & nodes[ 1 ] . node . get_our_node_id ( ) ) . unwrap ( ) ;
10591008
1060- check_closed_event (
1061- & nodes[ 0 ] ,
1062- 1 ,
1063- ClosureReason :: HolderForceClosed ,
1064- false ,
1065- & [ nodes[ 1 ] . node . get_our_node_id ( ) ] ,
1066- 100000 ,
1067- ) ;
1009+ check_closed_event ( & nodes[ 0 ] , 1 , ClosureReason :: HolderForceClosed , false , & [ nodes[ 1 ] . node . get_our_node_id ( ) ] , 100000 ) ;
10681010 check_closed_broadcast ! ( nodes[ 0 ] , true ) ;
10691011 check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
10701012
10711013 let node_txn = nodes[ 0 ] . tx_broadcaster . txn_broadcast ( ) ;
10721014 assert_eq ! ( node_txn. len( ) , 1 ) ;
10731015
1074- connect_block (
1075- & nodes[ 1 ] ,
1076- & create_dummy_block (
1077- nodes[ 0 ] . best_block_hash ( ) ,
1078- 42 ,
1079- vec ! [ node_txn[ 0 ] . clone( ) , node_txn[ 0 ] . clone( ) ] ,
1080- ) ,
1081- ) ;
1016+ connect_block ( & nodes[ 1 ] , & create_dummy_block ( nodes[ 0 ] . best_block_hash ( ) , 42 , vec ! [ node_txn[ 0 ] . clone( ) , node_txn[ 0 ] . clone( ) ] ) ) ;
10821017
10831018 check_closed_broadcast ! ( nodes[ 1 ] , true ) ;
1084- check_closed_event (
1085- & nodes[ 1 ] ,
1086- 1 ,
1087- ClosureReason :: CommitmentTxConfirmed ,
1088- false ,
1089- & [ nodes[ 0 ] . node . get_our_node_id ( ) ] ,
1090- 100000 ,
1091- ) ;
1019+ check_closed_event ( & nodes[ 1 ] , 1 , ClosureReason :: CommitmentTxConfirmed , false , & [ nodes[ 0 ] . node . get_our_node_id ( ) ] , 100000 ) ;
10921020 check_added_monitors ! ( nodes[ 1 ] , 1 ) ;
10931021
10941022 // Make sure everything is persisted as expected after close.
10951023 check_persisted_data ! ( CLOSED_CHANNEL_UPDATE_ID ) ;
10961024
10971025 // Make sure the expected number of stale updates is present.
1098- let persisted_chan_data = persister_0
1099- . read_all_channel_monitors_with_updates ( & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator )
1100- . unwrap ( ) ;
1026+ let persisted_chan_data = persister_0. read_all_channel_monitors_with_updates ( & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator ) . unwrap ( ) ;
11011027 let ( _, monitor) = & persisted_chan_data[ 0 ] ;
11021028 let monitor_name = MonitorName :: from ( monitor. get_funding_txo ( ) . 0 ) ;
11031029 // The force-closer should have 0 updates, as it wrote a full monitor and consolidated.
1104- assert_eq ! (
1105- persister_0
1106- . kv_store
1107- . list( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str( ) )
1108- . unwrap( )
1109- . len( ) ,
1110- 0
1111- ) ;
1030+ assert_eq ! ( persister_0. kv_store. list( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str( ) ) . unwrap( ) . len( ) , 0 ) ;
11121031 // The FC counterparty may have updates. Perform a clean-up and confirm consolidation.
11131032 persister_1. cleanup_stale_updates ( false ) . unwrap ( ) ;
1114- assert_eq ! (
1115- persister_1
1116- . kv_store
1117- . list( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str( ) )
1118- . unwrap( )
1119- . len( ) ,
1120- 0
1121- ) ;
1033+ assert_eq ! ( persister_1. kv_store. list( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str( ) ) . unwrap( ) . len( ) , 0 ) ;
11221034 // Make sure everything is persisted as expected after consolidation.
11231035 check_persisted_data ! ( CLOSED_CHANNEL_UPDATE_ID ) ;
11241036 }
@@ -1134,31 +1046,15 @@ mod tests {
11341046 let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
11351047 let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
11361048 let chan = create_announced_chan_between_nodes ( & nodes, 0 , 1 ) ;
1137- nodes[ 1 ]
1138- . node
1139- . force_close_broadcasting_latest_txn ( & chan. 2 , & nodes[ 0 ] . node . get_our_node_id ( ) )
1140- . unwrap ( ) ;
1141- check_closed_event (
1142- & nodes[ 1 ] ,
1143- 1 ,
1144- ClosureReason :: HolderForceClosed ,
1145- false ,
1146- & [ nodes[ 0 ] . node . get_our_node_id ( ) ] ,
1147- 100000 ,
1148- ) ;
1049+ nodes[ 1 ] . node . force_close_broadcasting_latest_txn ( & chan. 2 , & nodes[ 0 ] . node . get_our_node_id ( ) ) . unwrap ( ) ;
1050+ check_closed_event ( & nodes[ 1 ] , 1 , ClosureReason :: HolderForceClosed , false , & [ nodes[ 0 ] . node . get_our_node_id ( ) ] , 100000 ) ;
11491051 {
11501052 let mut added_monitors = nodes[ 1 ] . chain_monitor . added_monitors . lock ( ) . unwrap ( ) ;
11511053 let update_map = nodes[ 1 ] . chain_monitor . latest_monitor_update_id . lock ( ) . unwrap ( ) ;
11521054 let update_id = update_map. get ( & added_monitors[ 0 ] . 0 . to_channel_id ( ) ) . unwrap ( ) ;
11531055 let cmu_map = nodes[ 1 ] . chain_monitor . monitor_updates . lock ( ) . unwrap ( ) ;
11541056 let cmu = & cmu_map. get ( & added_monitors[ 0 ] . 0 . to_channel_id ( ) ) . unwrap ( ) [ 0 ] ;
1155- let test_txo = OutPoint {
1156- txid : Txid :: from_hex (
1157- "8984484a580b825b9972d7adb15050b3ab624ccd731946b3eeddb92f4e7ef6be" ,
1158- )
1159- . unwrap ( ) ,
1160- index : 0 ,
1161- } ;
1057+ let test_txo = OutPoint { txid : Txid :: from_hex ( "8984484a580b825b9972d7adb15050b3ab624ccd731946b3eeddb92f4e7ef6be" ) . unwrap ( ) , index : 0 } ;
11621058
11631059 let ro_persister = MonitorUpdatingPersister {
11641060 kv_store : & TestStore :: new ( true ) ,
@@ -1178,12 +1074,7 @@ mod tests {
11781074 panic ! ( "Returned InProgress when shouldn't have" )
11791075 }
11801076 }
1181- match ro_persister. update_persisted_channel (
1182- test_txo,
1183- Some ( cmu) ,
1184- & added_monitors[ 0 ] . 1 ,
1185- update_id. 2 ,
1186- ) {
1077+ match ro_persister. update_persisted_channel ( test_txo, Some ( cmu) , & added_monitors[ 0 ] . 1 , update_id. 2 ) {
11871078 ChannelMonitorUpdateStatus :: UnrecoverableError => {
11881079 // correct result
11891080 }
@@ -1244,9 +1135,7 @@ mod tests {
12441135
12451136 // Check that the persisted channel data is empty before any channels are
12461137 // open.
1247- let persisted_chan_data = persister_0
1248- . read_all_channel_monitors_with_updates ( & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator )
1249- . unwrap ( ) ;
1138+ let persisted_chan_data = persister_0. read_all_channel_monitors_with_updates ( & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator ) . unwrap ( ) ;
12501139 assert_eq ! ( persisted_chan_data. len( ) , 0 ) ;
12511140
12521141 // Create some initial channel
@@ -1257,19 +1146,12 @@ mod tests {
12571146 send_payment ( & nodes[ 1 ] , & vec ! [ & nodes[ 0 ] ] [ ..] , 4_000_000 ) ;
12581147
12591148 // Get the monitor and make a fake stale update at update_id=1 (lowest height of an update possible)
1260- let persisted_chan_data = persister_0
1261- . read_all_channel_monitors_with_updates ( & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator )
1262- . unwrap ( ) ;
1149+ let persisted_chan_data = persister_0. read_all_channel_monitors_with_updates ( & broadcaster_0, & chanmon_cfgs[ 0 ] . fee_estimator ) . unwrap ( ) ;
12631150 let ( _, monitor) = & persisted_chan_data[ 0 ] ;
12641151 let monitor_name = MonitorName :: from ( monitor. get_funding_txo ( ) . 0 ) ;
12651152 persister_0
12661153 . kv_store
1267- . write (
1268- CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
1269- monitor_name. as_str ( ) ,
1270- UpdateName :: from ( 1 ) . as_str ( ) ,
1271- & [ 0u8 ; 1 ] ,
1272- )
1154+ . write ( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str ( ) , UpdateName :: from ( 1 ) . as_str ( ) , & [ 0u8 ; 1 ] )
12731155 . unwrap ( ) ;
12741156
12751157 // Do the stale update cleanup
@@ -1278,41 +1160,19 @@ mod tests {
12781160 // Confirm the stale update is unreadable/gone
12791161 assert ! ( persister_0
12801162 . kv_store
1281- . read(
1282- CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
1283- monitor_name. as_str( ) ,
1284- UpdateName :: from( 1 ) . as_str( )
1285- )
1163+ . read( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str( ) , UpdateName :: from( 1 ) . as_str( ) )
12861164 . is_err( ) ) ;
12871165
12881166 // Force close.
1289- nodes[ 0 ]
1290- . node
1291- . force_close_broadcasting_latest_txn (
1292- & nodes[ 0 ] . node . list_channels ( ) [ 0 ] . channel_id ,
1293- & nodes[ 1 ] . node . get_our_node_id ( ) ,
1294- )
1295- . unwrap ( ) ;
1296- check_closed_event (
1297- & nodes[ 0 ] ,
1298- 1 ,
1299- ClosureReason :: HolderForceClosed ,
1300- false ,
1301- & [ nodes[ 1 ] . node . get_our_node_id ( ) ] ,
1302- 100000 ,
1303- ) ;
1167+ nodes[ 0 ] . node . force_close_broadcasting_latest_txn ( & nodes[ 0 ] . node . list_channels ( ) [ 0 ] . channel_id , & nodes[ 1 ] . node . get_our_node_id ( ) ) . unwrap ( ) ;
1168+ check_closed_event ( & nodes[ 0 ] , 1 , ClosureReason :: HolderForceClosed , false , & [ nodes[ 1 ] . node . get_our_node_id ( ) ] , 100000 ) ;
13041169 check_closed_broadcast ! ( nodes[ 0 ] , true ) ;
13051170 check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
13061171
13071172 // Write an update near u64::MAX
13081173 persister_0
13091174 . kv_store
1310- . write (
1311- CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
1312- monitor_name. as_str ( ) ,
1313- UpdateName :: from ( u64:: MAX - 1 ) . as_str ( ) ,
1314- & [ 0u8 ; 1 ] ,
1315- )
1175+ . write ( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str ( ) , UpdateName :: from ( u64:: MAX - 1 ) . as_str ( ) , & [ 0u8 ; 1 ] )
13161176 . unwrap ( ) ;
13171177
13181178 // Do the stale update cleanup
@@ -1321,11 +1181,7 @@ mod tests {
13211181 // Confirm the stale update is unreadable/gone
13221182 assert ! ( persister_0
13231183 . kv_store
1324- . read(
1325- CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE ,
1326- monitor_name. as_str( ) ,
1327- UpdateName :: from( u64 :: MAX - 1 ) . as_str( )
1328- )
1184+ . read( CHANNEL_MONITOR_UPDATE_PERSISTENCE_NAMESPACE , monitor_name. as_str( ) , UpdateName :: from( u64 :: MAX - 1 ) . as_str( ) )
13291185 . is_err( ) ) ;
13301186 }
13311187}
0 commit comments