@@ -5927,6 +5927,31 @@ fn bolt2_open_channel_sending_node_checks_part2() {
5927
5927
assert ! ( PublicKey :: from_slice( & node0_to_1_send_open_channel. delayed_payment_basepoint. serialize( ) ) . is_ok( ) ) ;
5928
5928
}
5929
5929
5930
+ #[ test]
5931
+ fn bolt2_open_channel_sane_dust_limit ( ) {
5932
+ let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
5933
+ let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
5934
+ let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
5935
+ let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
5936
+
5937
+ let channel_value_satoshis=1000000 ;
5938
+ let push_msat=10001 ;
5939
+ nodes[ 0 ] . node . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , channel_value_satoshis, push_msat, 42 , None ) . unwrap ( ) ;
5940
+ let mut node0_to_1_send_open_channel = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
5941
+ node0_to_1_send_open_channel. dust_limit_satoshis = 661 ;
5942
+ node0_to_1_send_open_channel. channel_reserve_satoshis = 100001 ;
5943
+
5944
+ nodes[ 1 ] . node . handle_open_channel ( & nodes[ 0 ] . node . get_our_node_id ( ) , InitFeatures :: known ( ) , & node0_to_1_send_open_channel) ;
5945
+ let events = nodes[ 1 ] . node . get_and_clear_pending_msg_events ( ) ;
5946
+ let err_msg = match events[ 0 ] {
5947
+ MessageSendEvent :: HandleError { action : ErrorAction :: SendErrorMessage { ref msg } , node_id : _ } => {
5948
+ msg. clone ( )
5949
+ } ,
5950
+ _ => panic ! ( "Unexpected event" ) ,
5951
+ } ;
5952
+ assert_eq ! ( err_msg. data, "dust_limit_satoshis (661) is greater than the implementation limit (660)" ) ;
5953
+ }
5954
+
5930
5955
// Test that if we fail to send an HTLC that is being freed from the holding cell, and the HTLC
5931
5956
// originated from our node, its failure is surfaced to the user. We trigger this failure to
5932
5957
// free the HTLC by increasing our fee while the HTLC is in the holding cell such that the HTLC
0 commit comments