Skip to content

Commit d0e21d7

Browse files
committed
Implement OffersMessageFlow functions
And introduce it's usage in ChannelManager
1 parent afe7ece commit d0e21d7

File tree

7 files changed

+723
-493
lines changed

7 files changed

+723
-493
lines changed

lightning-background-processor/src/lib.rs

+21-3
Original file line numberDiff line numberDiff line change
@@ -1083,11 +1083,14 @@ mod tests {
10831083
IgnoringMessageHandler, MessageHandler, PeerManager, SocketDescriptor,
10841084
};
10851085
use lightning::ln::types::ChannelId;
1086+
use lightning::offers::flow::OffersMessageFlow;
10861087
use lightning::onion_message::messenger::{DefaultMessageRouter, OnionMessenger};
10871088
use lightning::routing::gossip::{NetworkGraph, P2PGossipSync};
10881089
use lightning::routing::router::{CandidateRouteHop, DefaultRouter, Path, RouteHop};
10891090
use lightning::routing::scoring::{ChannelUsage, LockableScore, ScoreLookUp, ScoreUpdate};
1090-
use lightning::sign::{ChangeDestinationSource, InMemorySigner, KeysManager};
1091+
use lightning::sign::{
1092+
ChangeDestinationSource, InMemorySigner, KeysManager, NodeSigner, Recipient,
1093+
};
10911094
use lightning::types::features::{ChannelFeatures, NodeFeatures};
10921095
use lightning::types::payment::PaymentHash;
10931096
use lightning::util::config::UserConfig;
@@ -1559,6 +1562,21 @@ mod tests {
15591562
network_graph.clone(),
15601563
Arc::clone(&keys_manager),
15611564
));
1565+
let best_block = BestBlock::from_network(network);
1566+
let params = ChainParameters { network, best_block };
1567+
let chain_hash = ChainHash::using_genesis_block(params.network);
1568+
1569+
let flow = OffersMessageFlow::new(
1570+
chain_hash,
1571+
params.best_block,
1572+
keys_manager.get_node_id(Recipient::Node).unwrap(),
1573+
genesis_block.header.time,
1574+
keys_manager.get_inbound_payment_key(),
1575+
keys_manager.clone(),
1576+
msg_router.clone(),
1577+
router.clone(),
1578+
);
1579+
15621580
let chain_source = Arc::new(test_utils::TestChainSource::new(Network::Bitcoin));
15631581
let kv_store =
15641582
Arc::new(FilesystemStore::new(format!("{}_persister_{}", &persist_dir, i).into()));
@@ -1571,14 +1589,14 @@ mod tests {
15711589
fee_estimator.clone(),
15721590
kv_store.clone(),
15731591
));
1574-
let best_block = BestBlock::from_network(network);
1575-
let params = ChainParameters { network, best_block };
1592+
15761593
let manager = Arc::new(ChannelManager::new(
15771594
fee_estimator.clone(),
15781595
chain_monitor.clone(),
15791596
tx_broadcaster.clone(),
15801597
router.clone(),
15811598
msg_router.clone(),
1599+
flow,
15821600
logger.clone(),
15831601
keys_manager.clone(),
15841602
keys_manager.clone(),

lightning-liquidity/tests/common/mod.rs

+19-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
#![allow(unused_macros)]
66

77
use lightning::chain::Filter;
8-
use lightning::sign::EntropySource;
8+
use lightning::offers::flow::OffersMessageFlow;
9+
use lightning::sign::{EntropySource, NodeSigner, Recipient};
910

1011
use bitcoin::blockdata::constants::{genesis_block, ChainHash};
1112
use bitcoin::blockdata::transaction::Transaction;
@@ -421,6 +422,22 @@ pub(crate) fn create_liquidity_node(
421422
));
422423
let msg_router =
423424
Arc::new(DefaultMessageRouter::new(Arc::clone(&network_graph), Arc::clone(&keys_manager)));
425+
426+
let best_block = BestBlock::from_network(network);
427+
let chain_params = ChainParameters { network, best_block };
428+
let chain_hash = ChainHash::using_genesis_block(chain_params.network);
429+
430+
let flow = OffersMessageFlow::new(
431+
chain_hash,
432+
chain_params.best_block,
433+
keys_manager.get_node_id(Recipient::Node).unwrap(),
434+
genesis_block.header.time,
435+
keys_manager.get_inbound_payment_key(),
436+
keys_manager.clone(),
437+
msg_router.clone(),
438+
router.clone(),
439+
);
440+
424441
let chain_source = Arc::new(test_utils::TestChainSource::new(Network::Bitcoin));
425442
let kv_store =
426443
Arc::new(FilesystemStore::new(format!("{}_persister_{}", &persist_dir, i).into()));
@@ -431,14 +448,13 @@ pub(crate) fn create_liquidity_node(
431448
fee_estimator.clone(),
432449
kv_store.clone(),
433450
));
434-
let best_block = BestBlock::from_network(network);
435-
let chain_params = ChainParameters { network, best_block };
436451
let channel_manager = Arc::new(ChannelManager::new(
437452
fee_estimator.clone(),
438453
chain_monitor.clone(),
439454
tx_broadcaster.clone(),
440455
router.clone(),
441456
msg_router.clone(),
457+
flow,
442458
logger.clone(),
443459
keys_manager.clone(),
444460
keys_manager.clone(),

0 commit comments

Comments
 (0)