@@ -36,9 +36,9 @@ use lightning::chain::{BestBlock, ChannelMonitorUpdateStatus, chainmonitor, chan
36
36
use lightning:: chain:: channelmonitor:: { ChannelMonitor , MonitorEvent } ;
37
37
use lightning:: chain:: transaction:: OutPoint ;
38
38
use lightning:: chain:: chaininterface:: { BroadcasterInterface , ConfirmationTarget , FeeEstimator } ;
39
- use lightning:: chain:: keysinterface:: { KeyMaterial , KeysInterface , InMemorySigner , Recipient , EntropySource , NodeSigner , SignerProvider } ;
39
+ use lightning:: chain:: keysinterface:: { KeyMaterial , InMemorySigner , Recipient , EntropySource , NodeSigner , SignerProvider } ;
40
40
use lightning:: ln:: { PaymentHash , PaymentPreimage , PaymentSecret } ;
41
- use lightning:: ln:: channelmanager:: { self , ChainParameters , ChannelDetails , ChannelManager , PaymentSendFailure , ChannelManagerReadArgs , PaymentId } ;
41
+ use lightning:: ln:: channelmanager:: { ChainParameters , ChannelDetails , ChannelManager , PaymentSendFailure , ChannelManagerReadArgs , PaymentId } ;
42
42
use lightning:: ln:: channel:: FEE_SPIKE_BUFFER_FEE_INCREASE_MULTIPLE ;
43
43
use lightning:: ln:: msgs:: { self , CommitmentUpdate , ChannelMessageHandler , DecodeError , UpdateAddHTLC , Init } ;
44
44
use lightning:: ln:: script:: ShutdownScript ;
@@ -61,7 +61,7 @@ use bitcoin::secp256k1::Secp256k1;
61
61
62
62
use std:: mem;
63
63
use std:: cmp:: { self , Ordering } ;
64
- use std :: collections :: { HashSet , hash_map, HashMap } ;
64
+ use hashbrown :: { HashSet , hash_map, HashMap } ;
65
65
use std:: sync:: { Arc , Mutex } ;
66
66
use std:: sync:: atomic;
67
67
use std:: io:: Cursor ;
@@ -159,7 +159,7 @@ impl chain::Watch<EnforcingSigner> for TestChainMonitor {
159
159
hash_map:: Entry :: Vacant ( _) => panic ! ( "Didn't have monitor on update call" ) ,
160
160
} ;
161
161
let deserialized_monitor = <( BlockHash , channelmonitor:: ChannelMonitor < EnforcingSigner > ) >::
162
- read ( & mut Cursor :: new ( & map_entry. get ( ) . 1 ) , & * self . keys ) . unwrap ( ) . 1 ;
162
+ read ( & mut Cursor :: new ( & map_entry. get ( ) . 1 ) , ( & * self . keys , & * self . keys ) ) . unwrap ( ) . 1 ;
163
163
deserialized_monitor. update_monitor ( & update, & & TestBroadcaster { } , & FuzzEstimator { ret_val : atomic:: AtomicU32 :: new ( 253 ) } , & self . logger ) . unwrap ( ) ;
164
164
let mut ser = VecWriter ( Vec :: new ( ) ) ;
165
165
deserialized_monitor. write ( & mut ser) . unwrap ( ) ;
@@ -270,8 +270,6 @@ impl SignerProvider for KeyProvider {
270
270
}
271
271
}
272
272
273
- impl KeysInterface for KeyProvider { }
274
-
275
273
impl KeyProvider {
276
274
fn make_enforcement_state_cell ( & self , commitment_seed : [ u8 ; 32 ] ) -> Arc < Mutex < EnforcementState > > {
277
275
let mut revoked_commitments = self . enforcement_states . lock ( ) . unwrap ( ) ;
@@ -328,7 +326,7 @@ fn check_payment_err(send_err: PaymentSendFailure) {
328
326
}
329
327
}
330
328
331
- type ChanMan < ' a > = ChannelManager < Arc < TestChainMonitor > , Arc < TestBroadcaster > , Arc < KeyProvider > , Arc < FuzzEstimator > , & ' a FuzzRouter , Arc < dyn Logger > > ;
329
+ type ChanMan < ' a > = ChannelManager < Arc < TestChainMonitor > , Arc < TestBroadcaster > , Arc < KeyProvider > , Arc < KeyProvider > , Arc < KeyProvider > , Arc < FuzzEstimator > , & ' a FuzzRouter , Arc < dyn Logger > > ;
332
330
333
331
#[ inline]
334
332
fn get_payment_secret_hash ( dest : & ChanMan , payment_id : & mut u8 ) -> Option < ( PaymentSecret , PaymentHash ) > {
@@ -353,9 +351,9 @@ fn send_payment(source: &ChanMan, dest: &ChanMan, dest_chan_id: u64, amt: u64, p
353
351
if let Err ( err) = source. send_payment ( & Route {
354
352
paths : vec ! [ vec![ RouteHop {
355
353
pubkey: dest. get_our_node_id( ) ,
356
- node_features: channelmanager :: provided_node_features ( ) ,
354
+ node_features: dest . node_features ( ) ,
357
355
short_channel_id: dest_chan_id,
358
- channel_features: channelmanager :: provided_channel_features ( ) ,
356
+ channel_features: dest . channel_features ( ) ,
359
357
fee_msat: amt,
360
358
cltv_expiry_delta: 200 ,
361
359
} ] ] ,
@@ -375,16 +373,16 @@ fn send_hop_payment(source: &ChanMan, middle: &ChanMan, middle_chan_id: u64, des
375
373
if let Err ( err) = source. send_payment ( & Route {
376
374
paths : vec ! [ vec![ RouteHop {
377
375
pubkey: middle. get_our_node_id( ) ,
378
- node_features: channelmanager :: provided_node_features ( ) ,
376
+ node_features: middle . node_features ( ) ,
379
377
short_channel_id: middle_chan_id,
380
- channel_features: channelmanager :: provided_channel_features ( ) ,
378
+ channel_features: middle . channel_features ( ) ,
381
379
fee_msat: 50000 ,
382
380
cltv_expiry_delta: 100 ,
383
381
} , RouteHop {
384
382
pubkey: dest. get_our_node_id( ) ,
385
- node_features: channelmanager :: provided_node_features ( ) ,
383
+ node_features: dest . node_features ( ) ,
386
384
short_channel_id: dest_chan_id,
387
- channel_features: channelmanager :: provided_channel_features ( ) ,
385
+ channel_features: dest . channel_features ( ) ,
388
386
fee_msat: amt,
389
387
cltv_expiry_delta: 200 ,
390
388
} ] ] ,
@@ -418,7 +416,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
418
416
network,
419
417
best_block: BestBlock :: from_genesis( network) ,
420
418
} ;
421
- ( ChannelManager :: new( $fee_estimator. clone( ) , monitor. clone( ) , broadcast. clone( ) , & router, Arc :: clone( & logger) , keys_manager. clone( ) , config, params) ,
419
+ ( ChannelManager :: new( $fee_estimator. clone( ) , monitor. clone( ) , broadcast. clone( ) , & router, Arc :: clone( & logger) , keys_manager. clone( ) , keys_manager . clone ( ) , keys_manager . clone ( ) , config, params) ,
422
420
monitor, keys_manager)
423
421
} }
424
422
}
@@ -439,7 +437,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
439
437
let mut monitors = HashMap :: new( ) ;
440
438
let mut old_monitors = $old_monitors. latest_monitors. lock( ) . unwrap( ) ;
441
439
for ( outpoint, ( update_id, monitor_ser) ) in old_monitors. drain( ) {
442
- monitors. insert( outpoint, <( BlockHash , ChannelMonitor <EnforcingSigner >) >:: read( & mut Cursor :: new( & monitor_ser) , & * $keys_manager) . expect( "Failed to read monitor" ) . 1 ) ;
440
+ monitors. insert( outpoint, <( BlockHash , ChannelMonitor <EnforcingSigner >) >:: read( & mut Cursor :: new( & monitor_ser) , ( & * $keys_manager, & * $keys_manager ) ) . expect( "Failed to read monitor" ) . 1 ) ;
443
441
chain_monitor. latest_monitors. lock( ) . unwrap( ) . insert( outpoint, ( update_id, monitor_ser) ) ;
444
442
}
445
443
let mut monitor_refs = HashMap :: new( ) ;
@@ -448,7 +446,9 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
448
446
}
449
447
450
448
let read_args = ChannelManagerReadArgs {
451
- keys_manager,
449
+ entropy_source: keys_manager. clone( ) ,
450
+ node_signer: keys_manager. clone( ) ,
451
+ signer_provider: keys_manager. clone( ) ,
452
452
fee_estimator: $fee_estimator. clone( ) ,
453
453
chain_monitor: chain_monitor. clone( ) ,
454
454
tx_broadcaster: broadcast. clone( ) ,
@@ -470,8 +470,8 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
470
470
let mut channel_txn = Vec :: new ( ) ;
471
471
macro_rules! make_channel {
472
472
( $source: expr, $dest: expr, $chan_id: expr) => { {
473
- $source. peer_connected( & $dest. get_our_node_id( ) , & Init { features: channelmanager :: provided_init_features ( ) , remote_network_address: None } ) . unwrap( ) ;
474
- $dest. peer_connected( & $source. get_our_node_id( ) , & Init { features: channelmanager :: provided_init_features ( ) , remote_network_address: None } ) . unwrap( ) ;
473
+ $source. peer_connected( & $dest. get_our_node_id( ) , & Init { features: $dest . init_features ( ) , remote_network_address: None } ) . unwrap( ) ;
474
+ $dest. peer_connected( & $source. get_our_node_id( ) , & Init { features: $source . init_features ( ) , remote_network_address: None } ) . unwrap( ) ;
475
475
476
476
$source. create_channel( $dest. get_our_node_id( ) , 100_000 , 42 , 0 , None ) . unwrap( ) ;
477
477
let open_channel = {
@@ -482,7 +482,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
482
482
} else { panic!( "Wrong event type" ) ; }
483
483
} ;
484
484
485
- $dest. handle_open_channel( & $source. get_our_node_id( ) , channelmanager :: provided_init_features ( ) , & open_channel) ;
485
+ $dest. handle_open_channel( & $source. get_our_node_id( ) , & open_channel) ;
486
486
let accept_channel = {
487
487
let events = $dest. get_and_clear_pending_msg_events( ) ;
488
488
assert_eq!( events. len( ) , 1 ) ;
@@ -491,7 +491,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
491
491
} else { panic!( "Wrong event type" ) ; }
492
492
} ;
493
493
494
- $source. handle_accept_channel( & $dest. get_our_node_id( ) , channelmanager :: provided_init_features ( ) , & accept_channel) ;
494
+ $source. handle_accept_channel( & $dest. get_our_node_id( ) , & accept_channel) ;
495
495
let funding_output;
496
496
{
497
497
let events = $source. get_and_clear_pending_events( ) ;
@@ -990,15 +990,15 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
990
990
} ,
991
991
0x0e => {
992
992
if chan_a_disconnected {
993
- nodes[ 0 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
994
- nodes[ 1 ] . peer_connected ( & nodes[ 0 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
993
+ nodes[ 0 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : nodes [ 1 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
994
+ nodes[ 1 ] . peer_connected ( & nodes[ 0 ] . get_our_node_id ( ) , & Init { features : nodes [ 0 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
995
995
chan_a_disconnected = false ;
996
996
}
997
997
} ,
998
998
0x0f => {
999
999
if chan_b_disconnected {
1000
- nodes[ 1 ] . peer_connected ( & nodes[ 2 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1001
- nodes[ 2 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1000
+ nodes[ 1 ] . peer_connected ( & nodes[ 2 ] . get_our_node_id ( ) , & Init { features : nodes [ 2 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1001
+ nodes[ 2 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : nodes [ 1 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1002
1002
chan_b_disconnected = false ;
1003
1003
}
1004
1004
} ,
@@ -1193,13 +1193,13 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
1193
1193
1194
1194
// Next, make sure peers are all connected to each other
1195
1195
if chan_a_disconnected {
1196
- nodes[ 0 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1197
- nodes[ 1 ] . peer_connected ( & nodes[ 0 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1196
+ nodes[ 0 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : nodes [ 1 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1197
+ nodes[ 1 ] . peer_connected ( & nodes[ 0 ] . get_our_node_id ( ) , & Init { features : nodes [ 0 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1198
1198
chan_a_disconnected = false ;
1199
1199
}
1200
1200
if chan_b_disconnected {
1201
- nodes[ 1 ] . peer_connected ( & nodes[ 2 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1202
- nodes[ 2 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : channelmanager :: provided_init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1201
+ nodes[ 1 ] . peer_connected ( & nodes[ 2 ] . get_our_node_id ( ) , & Init { features : nodes [ 2 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1202
+ nodes[ 2 ] . peer_connected ( & nodes[ 1 ] . get_our_node_id ( ) , & Init { features : nodes [ 1 ] . init_features ( ) , remote_network_address : None } ) . unwrap ( ) ;
1203
1203
chan_b_disconnected = false ;
1204
1204
}
1205
1205
0 commit comments