@@ -1939,7 +1939,7 @@ mod tests {
1939
1939
use routing:: scoring:: { ChannelUsage , Score , ProbabilisticScorer , ProbabilisticScoringParameters } ;
1940
1940
use chain:: transaction:: OutPoint ;
1941
1941
use chain:: keysinterface:: KeysInterface ;
1942
- use ln:: features:: { ChannelFeatures , InitFeatures , InvoiceFeatures , NodeFeatures } ;
1942
+ use ln:: features:: { ChannelFeatures , InitFeatures , NodeFeatures } ;
1943
1943
use ln:: msgs:: { ErrorAction , LightningError , UnsignedChannelAnnouncement , ChannelAnnouncement , RoutingMessageHandler ,
1944
1944
NodeAnnouncement , UnsignedNodeAnnouncement , ChannelUpdate , UnsignedChannelUpdate , MAX_VALUE_MSAT } ;
1945
1945
use ln:: channelmanager;
@@ -2656,7 +2656,7 @@ mod tests {
2656
2656
fn htlc_minimum_overpay_test ( ) {
2657
2657
let ( secp_ctx, network_graph, gossip_sync, _, logger) = build_graph ( ) ;
2658
2658
let ( our_privkey, our_id, privkeys, nodes) = get_nodes ( & secp_ctx) ;
2659
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
2659
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
2660
2660
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
2661
2661
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
2662
2662
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
@@ -3629,7 +3629,7 @@ mod tests {
3629
3629
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
3630
3630
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
3631
3631
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
3632
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
3632
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
3633
3633
3634
3634
// We will use a simple single-path route from
3635
3635
// our node to node2 via node0: channels {1, 3}.
@@ -3903,7 +3903,7 @@ mod tests {
3903
3903
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
3904
3904
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
3905
3905
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
3906
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
3906
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
3907
3907
3908
3908
// Path via {node7, node2, node4} is channels {12, 13, 6, 11}.
3909
3909
// {12, 13, 11} have the capacities of 100, {6} has a capacity of 50.
@@ -4077,7 +4077,7 @@ mod tests {
4077
4077
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
4078
4078
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
4079
4079
let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] )
4080
- . with_features ( InvoiceFeatures :: known ( ) ) ;
4080
+ . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
4081
4081
4082
4082
// We need a route consisting of 3 paths:
4083
4083
// From our node to node2 via node0, node7, node1 (three paths one hop each).
@@ -4235,7 +4235,7 @@ mod tests {
4235
4235
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
4236
4236
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
4237
4237
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
4238
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
4238
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
4239
4239
4240
4240
// We need a route consisting of 3 paths:
4241
4241
// From our node to node3 via {node0, node2}, {node7, node2, node4} and {node7, node2}.
@@ -4399,7 +4399,7 @@ mod tests {
4399
4399
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
4400
4400
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
4401
4401
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
4402
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
4402
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
4403
4403
4404
4404
// This test checks that if we have two cheaper paths and one more expensive path,
4405
4405
// so that liquidity-wise any 2 of 3 combination is sufficient,
@@ -4568,7 +4568,7 @@ mod tests {
4568
4568
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
4569
4569
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
4570
4570
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
4571
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
4571
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 3 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
4572
4572
4573
4573
// We need a route consisting of 2 paths:
4574
4574
// From our node to node3 via {node0, node2} and {node7, node2, node4}.
@@ -4749,7 +4749,7 @@ mod tests {
4749
4749
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
4750
4750
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
4751
4751
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
4752
- let payment_params = PaymentParameters :: from_node_id ( PublicKey :: from_slice ( & [ 02 ; 33 ] ) . unwrap ( ) ) . with_features ( InvoiceFeatures :: known ( ) )
4752
+ let payment_params = PaymentParameters :: from_node_id ( PublicKey :: from_slice ( & [ 02 ; 33 ] ) . unwrap ( ) ) . with_features ( channelmanager :: provided_invoice_features ( ) )
4753
4753
. with_route_hints ( vec ! [ RouteHint ( vec![ RouteHintHop {
4754
4754
src_node_id: nodes[ 2 ] ,
4755
4755
short_channel_id: 42 ,
@@ -4840,7 +4840,7 @@ mod tests {
4840
4840
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
4841
4841
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
4842
4842
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
4843
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( InvoiceFeatures :: known ( ) )
4843
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) )
4844
4844
. with_max_channel_saturation_power_of_half ( 0 ) ;
4845
4845
4846
4846
// We need a route consisting of 3 paths:
@@ -5196,7 +5196,7 @@ mod tests {
5196
5196
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
5197
5197
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
5198
5198
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
5199
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
5199
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
5200
5200
5201
5201
// We modify the graph to set the htlc_minimum of channel 2 and 4 as needed - channel 2
5202
5202
// gets an htlc_maximum_msat of 80_000 and channel 4 an htlc_minimum_msat of 90_000. We
@@ -5245,7 +5245,7 @@ mod tests {
5245
5245
assert_eq ! ( route. paths[ 0 ] [ 1 ] . short_channel_id, 13 ) ;
5246
5246
assert_eq ! ( route. paths[ 0 ] [ 1 ] . fee_msat, 90_000 ) ;
5247
5247
assert_eq ! ( route. paths[ 0 ] [ 1 ] . cltv_expiry_delta, 42 ) ;
5248
- assert_eq ! ( route. paths[ 0 ] [ 1 ] . node_features. le_flags( ) , InvoiceFeatures :: known ( ) . le_flags( ) ) ;
5248
+ assert_eq ! ( route. paths[ 0 ] [ 1 ] . node_features. le_flags( ) , channelmanager :: provided_invoice_features ( ) . le_flags( ) ) ;
5249
5249
assert_eq ! ( route. paths[ 0 ] [ 1 ] . channel_features. le_flags( ) , & id_to_feature_flags( 13 ) ) ;
5250
5250
}
5251
5251
}
@@ -5264,14 +5264,14 @@ mod tests {
5264
5264
let logger = Arc :: new ( test_utils:: TestLogger :: new ( ) ) ;
5265
5265
let network_graph = NetworkGraph :: new ( genesis_hash, Arc :: clone ( & logger) ) ;
5266
5266
let scorer = test_utils:: TestScorer :: with_penalty ( 0 ) ;
5267
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 0 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
5267
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 0 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
5268
5268
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
5269
5269
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
5270
5270
5271
5271
{
5272
5272
let route = get_route ( & our_id, & payment_params, & network_graph. read_only ( ) , Some ( & [
5273
- & get_channel_details ( Some ( 3 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 200_000 ) ,
5274
- & get_channel_details ( Some ( 2 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 10_000 ) ,
5273
+ & get_channel_details ( Some ( 3 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 200_000 ) ,
5274
+ & get_channel_details ( Some ( 2 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 10_000 ) ,
5275
5275
] ) , 100_000 , 42 , Arc :: clone ( & logger) , & scorer, & random_seed_bytes) . unwrap ( ) ;
5276
5276
assert_eq ! ( route. paths. len( ) , 1 ) ;
5277
5277
assert_eq ! ( route. paths[ 0 ] . len( ) , 1 ) ;
@@ -5282,8 +5282,8 @@ mod tests {
5282
5282
}
5283
5283
{
5284
5284
let route = get_route ( & our_id, & payment_params, & network_graph. read_only ( ) , Some ( & [
5285
- & get_channel_details ( Some ( 3 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5286
- & get_channel_details ( Some ( 2 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5285
+ & get_channel_details ( Some ( 3 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5286
+ & get_channel_details ( Some ( 2 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5287
5287
] ) , 100_000 , 42 , Arc :: clone ( & logger) , & scorer, & random_seed_bytes) . unwrap ( ) ;
5288
5288
assert_eq ! ( route. paths. len( ) , 2 ) ;
5289
5289
assert_eq ! ( route. paths[ 0 ] . len( ) , 1 ) ;
@@ -5308,14 +5308,14 @@ mod tests {
5308
5308
// smallest of them, avoiding further fragmenting our available outbound balance to
5309
5309
// this node.
5310
5310
let route = get_route ( & our_id, & payment_params, & network_graph. read_only ( ) , Some ( & [
5311
- & get_channel_details ( Some ( 2 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5312
- & get_channel_details ( Some ( 3 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5313
- & get_channel_details ( Some ( 5 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5314
- & get_channel_details ( Some ( 6 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 300_000 ) ,
5315
- & get_channel_details ( Some ( 7 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5316
- & get_channel_details ( Some ( 8 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5317
- & get_channel_details ( Some ( 9 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 50_000 ) ,
5318
- & get_channel_details ( Some ( 4 ) , nodes[ 0 ] , InitFeatures :: known ( ) , 1_000_000 ) ,
5311
+ & get_channel_details ( Some ( 2 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5312
+ & get_channel_details ( Some ( 3 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5313
+ & get_channel_details ( Some ( 5 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5314
+ & get_channel_details ( Some ( 6 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 300_000 ) ,
5315
+ & get_channel_details ( Some ( 7 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5316
+ & get_channel_details ( Some ( 8 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5317
+ & get_channel_details ( Some ( 9 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 50_000 ) ,
5318
+ & get_channel_details ( Some ( 4 ) , nodes[ 0 ] , channelmanager :: provided_init_features ( ) , 1_000_000 ) ,
5319
5319
] ) , 100_000 , 42 , Arc :: clone ( & logger) , & scorer, & random_seed_bytes) . unwrap ( ) ;
5320
5320
assert_eq ! ( route. paths. len( ) , 1 ) ;
5321
5321
assert_eq ! ( route. paths[ 0 ] . len( ) , 1 ) ;
@@ -5759,7 +5759,7 @@ mod tests {
5759
5759
excess_data : Vec :: new ( )
5760
5760
} ) ;
5761
5761
5762
- let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( InvoiceFeatures :: known ( ) ) ;
5762
+ let payment_params = PaymentParameters :: from_node_id ( nodes[ 2 ] ) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
5763
5763
let keys_manager = test_utils:: TestKeysInterface :: new ( & [ 0u8 ; 32 ] , Network :: Testnet ) ;
5764
5764
let random_seed_bytes = keys_manager. get_secure_random_bytes ( ) ;
5765
5765
// 100,000 sats is less than the available liquidity on each channel, set above.
@@ -5843,7 +5843,7 @@ mod tests {
5843
5843
let src = & PublicKey :: from_slice ( nodes. keys ( ) . skip ( seed % nodes. len ( ) ) . next ( ) . unwrap ( ) . as_slice ( ) ) . unwrap ( ) ;
5844
5844
seed = seed. overflowing_mul ( 0xdeadbeef ) . 0 ;
5845
5845
let dst = PublicKey :: from_slice ( nodes. keys ( ) . skip ( seed % nodes. len ( ) ) . next ( ) . unwrap ( ) . as_slice ( ) ) . unwrap ( ) ;
5846
- let payment_params = PaymentParameters :: from_node_id ( dst) . with_features ( InvoiceFeatures :: known ( ) ) ;
5846
+ let payment_params = PaymentParameters :: from_node_id ( dst) . with_features ( channelmanager :: provided_invoice_features ( ) ) ;
5847
5847
let amt = seed as u64 % 200_000_000 ;
5848
5848
let params = ProbabilisticScoringParameters :: default ( ) ;
5849
5849
let scorer = ProbabilisticScorer :: new ( params, & graph, & logger) ;
@@ -5926,7 +5926,7 @@ mod benches {
5926
5926
use bitcoin:: secp256k1:: { PublicKey , Secp256k1 , SecretKey } ;
5927
5927
use chain:: transaction:: OutPoint ;
5928
5928
use chain:: keysinterface:: { KeysManager , KeysInterface } ;
5929
- use ln:: channelmanager:: { ChannelCounterparty , ChannelDetails } ;
5929
+ use ln:: channelmanager:: { self , ChannelCounterparty , ChannelDetails } ;
5930
5930
use ln:: features:: { InitFeatures , InvoiceFeatures } ;
5931
5931
use routing:: gossip:: NetworkGraph ;
5932
5932
use routing:: scoring:: { FixedPenaltyScorer , ProbabilisticScorer , ProbabilisticScoringParameters } ;
@@ -5955,7 +5955,7 @@ mod benches {
5955
5955
ChannelDetails {
5956
5956
channel_id : [ 0 ; 32 ] ,
5957
5957
counterparty : ChannelCounterparty {
5958
- features : InitFeatures :: known ( ) ,
5958
+ features : channelmanager :: provided_init_features ( ) ,
5959
5959
node_id,
5960
5960
unspendable_punishment_reserve : 0 ,
5961
5961
forwarding_info : None ,
@@ -6001,7 +6001,7 @@ mod benches {
6001
6001
let logger = DummyLogger { } ;
6002
6002
let network_graph = read_network_graph ( & logger) ;
6003
6003
let scorer = FixedPenaltyScorer :: with_penalty ( 0 ) ;
6004
- generate_routes ( bench, & network_graph, scorer, InvoiceFeatures :: known ( ) ) ;
6004
+ generate_routes ( bench, & network_graph, scorer, channelmanager :: provided_invoice_features ( ) ) ;
6005
6005
}
6006
6006
6007
6007
#[ bench]
@@ -6019,7 +6019,7 @@ mod benches {
6019
6019
let network_graph = read_network_graph ( & logger) ;
6020
6020
let params = ProbabilisticScoringParameters :: default ( ) ;
6021
6021
let scorer = ProbabilisticScorer :: new ( params, & network_graph, & logger) ;
6022
- generate_routes ( bench, & network_graph, scorer, InvoiceFeatures :: known ( ) ) ;
6022
+ generate_routes ( bench, & network_graph, scorer, channelmanager :: provided_invoice_features ( ) ) ;
6023
6023
}
6024
6024
6025
6025
fn generate_routes < S : Score > (
0 commit comments