@@ -1569,18 +1569,8 @@ fn test_fee_spike_violation_fails_htlc() {
1569
1569
let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
1570
1570
let mut nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
1571
1571
let chan = create_announced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 100000 , 95000000 , InitFeatures :: known ( ) , InitFeatures :: known ( ) ) ;
1572
- let logger = test_utils:: TestLogger :: new ( ) ;
1573
-
1574
- macro_rules! get_route_and_payment_hash {
1575
- ( $recv_value: expr) => { {
1576
- let ( payment_preimage, payment_hash) = get_payment_preimage_hash!( nodes[ 1 ] ) ;
1577
- let net_graph_msg_handler = & nodes[ 0 ] . net_graph_msg_handler. network_graph. read( ) . unwrap( ) ;
1578
- let route = get_route( & nodes[ 0 ] . node. get_our_node_id( ) , net_graph_msg_handler, & nodes. last( ) . unwrap( ) . node. get_our_node_id( ) , None , None , & Vec :: new( ) , $recv_value, TEST_FINAL_CLTV , & logger) . unwrap( ) ;
1579
- ( route, payment_hash, payment_preimage)
1580
- } }
1581
- }
1582
1572
1583
- let ( route, payment_hash, _) = get_route_and_payment_hash ! ( 3460001 ) ;
1573
+ let ( route, payment_hash, _) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 1 ] , 3460001 ) ;
1584
1574
// Need to manually create the update_add_htlc message to go around the channel reserve check in send_htlc()
1585
1575
let secp_ctx = Secp256k1 :: new ( ) ;
1586
1576
let session_priv = SecretKey :: from_slice ( & [ 42 ; 32 ] ) . expect ( "RNG is bad!" ) ;
@@ -1709,18 +1699,8 @@ fn test_chan_reserve_violation_outbound_htlc_inbound_chan() {
1709
1699
let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
1710
1700
let mut nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
1711
1701
let _ = create_announced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 100000 , 95000000 , InitFeatures :: known ( ) , InitFeatures :: known ( ) ) ;
1712
- let logger = test_utils:: TestLogger :: new ( ) ;
1713
-
1714
- macro_rules! get_route_and_payment_hash {
1715
- ( $recv_value: expr) => { {
1716
- let ( payment_preimage, payment_hash) = get_payment_preimage_hash!( nodes[ 1 ] ) ;
1717
- let net_graph_msg_handler = & nodes[ 1 ] . net_graph_msg_handler;
1718
- let route = get_route( & nodes[ 1 ] . node. get_our_node_id( ) , & net_graph_msg_handler. network_graph. read( ) . unwrap( ) , & nodes. first( ) . unwrap( ) . node. get_our_node_id( ) , None , None , & Vec :: new( ) , $recv_value, TEST_FINAL_CLTV , & logger) . unwrap( ) ;
1719
- ( route, payment_hash, payment_preimage)
1720
- } }
1721
- }
1722
1702
1723
- let ( route, our_payment_hash, _) = get_route_and_payment_hash ! ( 4843000 ) ;
1703
+ let ( route, our_payment_hash, _) = get_route_and_payment_hash ! ( nodes [ 1 ] , nodes [ 0 ] , 4843000 ) ;
1724
1704
unwrap_send_err ! ( nodes[ 1 ] . node. send_payment( & route, our_payment_hash, & None ) , true , APIError :: ChannelUnavailable { ref err } ,
1725
1705
assert_eq!( err, "Cannot send value that would put counterparty balance under holder-announced channel reserve value" ) ) ;
1726
1706
assert ! ( nodes[ 1 ] . node. get_and_clear_pending_msg_events( ) . is_empty( ) ) ;
@@ -1741,18 +1721,8 @@ fn test_chan_reserve_violation_inbound_htlc_outbound_channel() {
1741
1721
let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
1742
1722
let mut nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
1743
1723
let chan = create_announced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 100000 , 95000000 , InitFeatures :: known ( ) , InitFeatures :: known ( ) ) ;
1744
- let logger = test_utils:: TestLogger :: new ( ) ;
1745
1724
1746
- macro_rules! get_route_and_payment_hash {
1747
- ( $recv_value: expr) => { {
1748
- let ( payment_preimage, payment_hash) = get_payment_preimage_hash!( nodes[ 1 ] ) ;
1749
- let net_graph_msg_handler = & nodes[ 0 ] . net_graph_msg_handler;
1750
- let route = get_route( & nodes[ 1 ] . node. get_our_node_id( ) , & net_graph_msg_handler. network_graph. read( ) . unwrap( ) , & nodes. first( ) . unwrap( ) . node. get_our_node_id( ) , None , None , & Vec :: new( ) , $recv_value, TEST_FINAL_CLTV , & logger) . unwrap( ) ;
1751
- ( route, payment_hash, payment_preimage)
1752
- } }
1753
- }
1754
-
1755
- let ( route, payment_hash, _) = get_route_and_payment_hash ! ( 1000 ) ;
1725
+ let ( route, payment_hash, _) = get_route_and_payment_hash ! ( nodes[ 1 ] , nodes[ 0 ] , 1000 ) ;
1756
1726
// Need to manually create the update_add_htlc message to go around the channel reserve check in send_htlc()
1757
1727
let secp_ctx = Secp256k1 :: new ( ) ;
1758
1728
let session_priv = SecretKey :: from_slice ( & [ 42 ; 32 ] ) . unwrap ( ) ;
@@ -1837,16 +1807,6 @@ fn test_chan_reserve_violation_inbound_htlc_inbound_chan() {
1837
1807
let mut nodes = create_network ( 3 , & node_cfgs, & node_chanmgrs) ;
1838
1808
let chan = create_announced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 100000 , 95000000 , InitFeatures :: known ( ) , InitFeatures :: known ( ) ) ;
1839
1809
let _ = create_announced_chan_between_nodes_with_value ( & nodes, 1 , 2 , 100000 , 95000000 , InitFeatures :: known ( ) , InitFeatures :: known ( ) ) ;
1840
- let logger = test_utils:: TestLogger :: new ( ) ;
1841
-
1842
- macro_rules! get_route_and_payment_hash {
1843
- ( $recv_value: expr) => { {
1844
- let ( payment_preimage, payment_hash) = get_payment_preimage_hash!( nodes[ 0 ] ) ;
1845
- let net_graph_msg_handler = & nodes[ 0 ] . net_graph_msg_handler;
1846
- let route = get_route( & nodes[ 0 ] . node. get_our_node_id( ) , & net_graph_msg_handler. network_graph. read( ) . unwrap( ) , & nodes. last( ) . unwrap( ) . node. get_our_node_id( ) , None , None , & Vec :: new( ) , $recv_value, TEST_FINAL_CLTV , & logger) . unwrap( ) ;
1847
- ( route, payment_hash, payment_preimage)
1848
- } }
1849
- }
1850
1810
1851
1811
let feemsat = 239 ;
1852
1812
let total_routing_fee_msat = ( nodes. len ( ) - 2 ) as u64 * feemsat;
@@ -1859,7 +1819,7 @@ fn test_chan_reserve_violation_inbound_htlc_inbound_chan() {
1859
1819
let amt_msat_1 = recv_value_1 + total_routing_fee_msat;
1860
1820
1861
1821
// Add a pending HTLC.
1862
- let ( route_1, our_payment_hash_1, _) = get_route_and_payment_hash ! ( amt_msat_1) ;
1822
+ let ( route_1, our_payment_hash_1, _) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , amt_msat_1) ;
1863
1823
let payment_event_1 = {
1864
1824
nodes[ 0 ] . node . send_payment ( & route_1, our_payment_hash_1, & None ) . unwrap ( ) ;
1865
1825
check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
@@ -1874,7 +1834,7 @@ fn test_chan_reserve_violation_inbound_htlc_inbound_chan() {
1874
1834
let commit_tx_fee_2_htlcs = commit_tx_fee_msat ( feerate, 2 ) ;
1875
1835
let recv_value_2 = chan_stat. value_to_self_msat - amt_msat_1 - chan_stat. channel_reserve_msat - total_routing_fee_msat - commit_tx_fee_2_htlcs + 1 ;
1876
1836
let amt_msat_2 = recv_value_2 + total_routing_fee_msat;
1877
- let ( route_2, _, _) = get_route_and_payment_hash ! ( amt_msat_2) ;
1837
+ let ( route_2, _, _) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , amt_msat_2) ;
1878
1838
1879
1839
// Need to manually create the update_add_htlc message to go around the channel reserve check in send_htlc()
1880
1840
let secp_ctx = Secp256k1 :: new ( ) ;
@@ -1932,23 +1892,13 @@ fn test_channel_reserve_holding_cell_htlcs() {
1932
1892
let mut nodes = create_network ( 3 , & node_cfgs, & node_chanmgrs) ;
1933
1893
let chan_1 = create_announced_chan_between_nodes_with_value ( & nodes, 0 , 1 , 190000 , 1001 , InitFeatures :: known ( ) , InitFeatures :: known ( ) ) ;
1934
1894
let chan_2 = create_announced_chan_between_nodes_with_value ( & nodes, 1 , 2 , 190000 , 1001 , InitFeatures :: known ( ) , InitFeatures :: known ( ) ) ;
1935
- let logger = test_utils:: TestLogger :: new ( ) ;
1936
1895
1937
1896
let mut stat01 = get_channel_value_stat ! ( nodes[ 0 ] , chan_1. 2 ) ;
1938
1897
let mut stat11 = get_channel_value_stat ! ( nodes[ 1 ] , chan_1. 2 ) ;
1939
1898
1940
1899
let mut stat12 = get_channel_value_stat ! ( nodes[ 1 ] , chan_2. 2 ) ;
1941
1900
let mut stat22 = get_channel_value_stat ! ( nodes[ 2 ] , chan_2. 2 ) ;
1942
1901
1943
- macro_rules! get_route_and_payment_hash {
1944
- ( $recv_value: expr) => { {
1945
- let ( payment_preimage, payment_hash) = get_payment_preimage_hash!( nodes[ 0 ] ) ;
1946
- let net_graph_msg_handler = & nodes[ 0 ] . net_graph_msg_handler;
1947
- let route = get_route( & nodes[ 0 ] . node. get_our_node_id( ) , & net_graph_msg_handler. network_graph. read( ) . unwrap( ) , & nodes. last( ) . unwrap( ) . node. get_our_node_id( ) , None , None , & Vec :: new( ) , $recv_value, TEST_FINAL_CLTV , & logger) . unwrap( ) ;
1948
- ( route, payment_hash, payment_preimage)
1949
- } }
1950
- }
1951
-
1952
1902
macro_rules! expect_forward {
1953
1903
( $node: expr) => { {
1954
1904
let mut events = $node. node. get_and_clear_pending_msg_events( ) ;
@@ -1967,7 +1917,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
1967
1917
1968
1918
// attempt to send amt_msat > their_max_htlc_value_in_flight_msat
1969
1919
{
1970
- let ( mut route, our_payment_hash, _) = get_route_and_payment_hash ! ( recv_value_0) ;
1920
+ let ( mut route, our_payment_hash, _) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , recv_value_0) ;
1971
1921
route. paths [ 0 ] . last_mut ( ) . unwrap ( ) . fee_msat += 1 ;
1972
1922
assert ! ( route. paths[ 0 ] . iter( ) . rev( ) . skip( 1 ) . all( |h| h. fee_msat == feemsat) ) ;
1973
1923
unwrap_send_err ! ( nodes[ 0 ] . node. send_payment( & route, our_payment_hash, & None ) , true , APIError :: ChannelUnavailable { ref err } ,
@@ -2019,7 +1969,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
2019
1969
let recv_value_1 = ( stat01. value_to_self_msat - stat01. channel_reserve_msat - total_fee_msat - commit_tx_fee_2_htlcs) /2 ;
2020
1970
let amt_msat_1 = recv_value_1 + total_fee_msat;
2021
1971
2022
- let ( route_1, our_payment_hash_1, our_payment_preimage_1) = get_route_and_payment_hash ! ( recv_value_1) ;
1972
+ let ( route_1, our_payment_hash_1, our_payment_preimage_1) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , recv_value_1) ;
2023
1973
let payment_event_1 = {
2024
1974
nodes[ 0 ] . node . send_payment ( & route_1, our_payment_hash_1, & None ) . unwrap ( ) ;
2025
1975
check_added_monitors ! ( nodes[ 0 ] , 1 ) ;
@@ -2033,7 +1983,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
2033
1983
// channel reserve test with htlc pending output > 0
2034
1984
let recv_value_2 = stat01. value_to_self_msat - amt_msat_1 - stat01. channel_reserve_msat - total_fee_msat - commit_tx_fee_2_htlcs;
2035
1985
{
2036
- let ( route, our_payment_hash, _) = get_route_and_payment_hash ! ( recv_value_2 + 1 ) ;
1986
+ let ( route, our_payment_hash, _) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , recv_value_2 + 1 ) ;
2037
1987
unwrap_send_err ! ( nodes[ 0 ] . node. send_payment( & route, our_payment_hash, & None ) , true , APIError :: ChannelUnavailable { ref err } ,
2038
1988
assert!( regex:: Regex :: new( r"Cannot send value that would put our balance under counterparty-announced channel reserve value \(\d+\)" ) . unwrap( ) . is_match( err) ) ) ;
2039
1989
assert ! ( nodes[ 0 ] . node. get_and_clear_pending_msg_events( ) . is_empty( ) ) ;
@@ -2050,7 +2000,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
2050
2000
}
2051
2001
2052
2002
// now see if they go through on both sides
2053
- let ( route_21, our_payment_hash_21, our_payment_preimage_21) = get_route_and_payment_hash ! ( recv_value_21) ;
2003
+ let ( route_21, our_payment_hash_21, our_payment_preimage_21) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , recv_value_21) ;
2054
2004
// but this will stuck in the holding cell
2055
2005
nodes[ 0 ] . node . send_payment ( & route_21, our_payment_hash_21, & None ) . unwrap ( ) ;
2056
2006
check_added_monitors ! ( nodes[ 0 ] , 0 ) ;
@@ -2059,14 +2009,14 @@ fn test_channel_reserve_holding_cell_htlcs() {
2059
2009
2060
2010
// test with outbound holding cell amount > 0
2061
2011
{
2062
- let ( route, our_payment_hash, _) = get_route_and_payment_hash ! ( recv_value_22+1 ) ;
2012
+ let ( route, our_payment_hash, _) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , recv_value_22+1 ) ;
2063
2013
unwrap_send_err ! ( nodes[ 0 ] . node. send_payment( & route, our_payment_hash, & None ) , true , APIError :: ChannelUnavailable { ref err } ,
2064
2014
assert!( regex:: Regex :: new( r"Cannot send value that would put our balance under counterparty-announced channel reserve value \(\d+\)" ) . unwrap( ) . is_match( err) ) ) ;
2065
2015
assert ! ( nodes[ 0 ] . node. get_and_clear_pending_msg_events( ) . is_empty( ) ) ;
2066
2016
nodes[ 0 ] . logger . assert_log_contains ( "lightning::ln::channelmanager" . to_string ( ) , "Cannot send value that would put our balance under counterparty-announced channel reserve value" . to_string ( ) , 2 ) ;
2067
2017
}
2068
2018
2069
- let ( route_22, our_payment_hash_22, our_payment_preimage_22) = get_route_and_payment_hash ! ( recv_value_22) ;
2019
+ let ( route_22, our_payment_hash_22, our_payment_preimage_22) = get_route_and_payment_hash ! ( nodes [ 0 ] , nodes [ 2 ] , recv_value_22) ;
2070
2020
// this will also stuck in the holding cell
2071
2021
nodes[ 0 ] . node . send_payment ( & route_22, our_payment_hash_22, & None ) . unwrap ( ) ;
2072
2022
check_added_monitors ! ( nodes[ 0 ] , 0 ) ;
0 commit comments