Skip to content

Commit d163c8a

Browse files
author
Antoine Riard
committed
Add ChainWatchInterface in Router
1 parent a1aaea5 commit d163c8a

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

fuzz/fuzz_targets/full_stack_target.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,12 +232,12 @@ pub fn do_test(data: &[u8], logger: &Arc<Logger>) {
232232
Err(_) => return,
233233
};
234234

235-
let watch = Arc::new(ChainWatchInterfaceUtil::new(Arc::clone(&logger)));
235+
let watch = Arc::new(ChainWatchInterfaceUtil::new(Network::Bitcoin, Arc::clone(&logger)));
236236
let broadcast = Arc::new(TestBroadcaster{});
237237
let monitor = channelmonitor::SimpleManyChannelMonitor::new(watch.clone(), broadcast.clone());
238238

239239
let channelmanager = ChannelManager::new(our_network_key, slice_to_be32(get_slice!(4)), get_slice!(1)[0] != 0, Network::Bitcoin, fee_est.clone(), monitor.clone(), watch.clone(), broadcast.clone(), Arc::clone(&logger)).unwrap();
240-
let router = Arc::new(Router::new(PublicKey::from_secret_key(&secp_ctx, &our_network_key), Arc::clone(&logger)));
240+
let router = Arc::new(Router::new(PublicKey::from_secret_key(&secp_ctx, &our_network_key), watch.clone(), Arc::clone(&logger)));
241241

242242
let peers = RefCell::new([false; 256]);
243243
let mut loss_detector = MoneyLossDetector::new(&peers, channelmanager.clone(), monitor.clone(), PeerManager::new(MessageHandler {

fuzz/fuzz_targets/router_target.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ extern crate bitcoin;
22
extern crate lightning;
33
extern crate secp256k1;
44

5+
use bitcoin::network::constants::Network;
6+
7+
use lightning::chain::chaininterface;
58
use lightning::ln::channelmanager::ChannelDetails;
69
use lightning::ln::msgs;
710
use lightning::ln::msgs::{MsgDecodable, RoutingMessageHandler};
@@ -107,9 +110,10 @@ pub fn do_test(data: &[u8]) {
107110
}
108111

109112
let logger: Arc<Logger> = Arc::new(test_logger::TestLogger{});
113+
let chain_monitor = Arc::new(chaininterface::ChainWatchInterfaceUtil::new(Network::Bitcoin, Arc::clone(&logger)));
110114

111115
let our_pubkey = get_pubkey!();
112-
let router = Router::new(our_pubkey.clone(), Arc::clone(&logger));
116+
let router = Router::new(our_pubkey.clone(), chain_monitor, Arc::clone(&logger));
113117

114118
loop {
115119
match get_slice!(1)[0] {

src/ln/channelmanager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2817,7 +2817,7 @@ mod tests {
28172817

28182818
for _ in 0..node_count {
28192819
let feeest = Arc::new(test_utils::TestFeeEstimator { sat_per_kw: 253 });
2820-
let chain_monitor = Arc::new(chaininterface::ChainWatchInterfaceUtil::new(Arc::clone(&logger)));
2820+
let chain_monitor = Arc::new(chaininterface::ChainWatchInterfaceUtil::new(Network::Testnet, Arc::clone(&logger)));
28212821
let tx_broadcaster = Arc::new(test_utils::TestBroadcaster{txn_broadcasted: Mutex::new(Vec::new())});
28222822
let chan_monitor = Arc::new(test_utils::TestChannelMonitor::new(chain_monitor.clone(), tx_broadcaster.clone()));
28232823
let node_id = {
@@ -2826,7 +2826,7 @@ mod tests {
28262826
SecretKey::from_slice(&secp_ctx, &key_slice).unwrap()
28272827
};
28282828
let node = ChannelManager::new(node_id.clone(), 0, true, Network::Testnet, feeest.clone(), chan_monitor.clone(), chain_monitor.clone(), tx_broadcaster.clone(), Arc::clone(&logger)).unwrap();
2829-
let router = Router::new(PublicKey::from_secret_key(&secp_ctx, &node_id), Arc::clone(&logger));
2829+
let router = Router::new(PublicKey::from_secret_key(&secp_ctx, &node_id), chain_monitor.clone(), Arc::clone(&logger));
28302830
nodes.push(Node { feeest, chain_monitor, tx_broadcaster, chan_monitor, node, router });
28312831
}
28322832

src/ln/router.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use secp256k1;
44

55
use bitcoin::util::hash::Sha256dHash;
66

7+
use chain::chaininterface::ChainWatchInterface;
78
use ln::channelmanager;
89
use ln::msgs::{ErrorAction,HandleError,RoutingMessageHandler,MsgEncodable,NetAddress,GlobalFeatures};
910
use ln::msgs;
@@ -155,6 +156,7 @@ pub struct RouteHint {
155156
pub struct Router {
156157
secp_ctx: Secp256k1<secp256k1::VerifyOnly>,
157158
network_map: RwLock<NetworkMap>,
159+
chain_monitor: Arc<ChainWatchInterface>,
158160
logger: Arc<Logger>,
159161
}
160162

@@ -388,7 +390,7 @@ struct DummyDirectionalChannelInfo {
388390
}
389391

390392
impl Router {
391-
pub fn new(our_pubkey: PublicKey, logger: Arc<Logger>) -> Router {
393+
pub fn new(our_pubkey: PublicKey, chain_monitor: Arc<ChainWatchInterface>, logger: Arc<Logger>) -> Router {
392394
let mut nodes = HashMap::new();
393395
nodes.insert(our_pubkey.clone(), NodeInfo {
394396
channels: Vec::new(),
@@ -407,6 +409,7 @@ impl Router {
407409
our_node_id: our_pubkey,
408410
nodes: nodes,
409411
}),
412+
chain_monitor,
410413
logger,
411414
}
412415
}
@@ -632,6 +635,7 @@ impl Router {
632635

633636
#[cfg(test)]
634637
mod tests {
638+
use chain::chaininterface;
635639
use ln::channelmanager;
636640
use ln::router::{Router,NodeInfo,NetworkMap,ChannelInfo,DirectionalChannelInfo,RouteHint};
637641
use ln::msgs::GlobalFeatures;
@@ -652,7 +656,8 @@ mod tests {
652656
let secp_ctx = Secp256k1::new();
653657
let our_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&secp_ctx, &hex::decode("0101010101010101010101010101010101010101010101010101010101010101").unwrap()[..]).unwrap());
654658
let logger: Arc<Logger> = Arc::new(test_utils::TestLogger::new());
655-
let router = Router::new(our_id, Arc::clone(&logger));
659+
let chain_monitor = Arc::new(chaininterface::ChainWatchInterfaceUtil::new(Network::Testnet, Arc::clone(&logger)));
660+
let router = Router::new(our_id, chain_monitor, Arc::clone(&logger));
656661

657662
// Build network from our_id to node8:
658663
//

0 commit comments

Comments
 (0)