Skip to content

Commit f322c1a

Browse files
committed
Let LiquidityManager take a KVStore
We add `KVStore` to `LiquidityManager`, which will be used in the next commits.
1 parent bf87832 commit f322c1a

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2242,12 +2242,14 @@ mod tests {
22422242
Arc::clone(&logger),
22432243
Arc::clone(&keys_manager),
22442244
));
2245+
let kv_store_sync = Arc::new(KVStoreSyncWrapper(Arc::clone(&kv_store)));
22452246
let liquidity_manager = Arc::new(LiquidityManager::new(
22462247
Arc::clone(&keys_manager),
22472248
Arc::clone(&keys_manager),
22482249
Arc::clone(&manager),
22492250
None,
22502251
None,
2252+
kv_store_sync,
22512253
None,
22522254
None,
22532255
));

lightning-liquidity/src/manager.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ use lightning::ln::peer_handler::CustomMessageHandler;
4545
use lightning::ln::wire::CustomMessageReader;
4646
use lightning::sign::{EntropySource, NodeSigner};
4747
use lightning::util::logger::Level;
48+
use lightning::util::persist::KVStore;
4849
use lightning::util::ser::{LengthLimitedRead, LengthReadable};
4950
use lightning::util::wakers::Future;
5051

@@ -195,6 +196,7 @@ pub struct LiquidityManager<
195196
_client_config: Option<LiquidityClientConfig>,
196197
best_block: RwLock<Option<BestBlock>>,
197198
_chain_source: Option<C>,
199+
kv_store: Arc<dyn KVStore + Send + Sync>,
198200
}
199201

200202
#[cfg(feature = "time")]
@@ -209,7 +211,8 @@ where
209211
/// Constructor for the [`LiquidityManager`] using the default system clock
210212
pub fn new(
211213
entropy_source: ES, node_signer: NS, channel_manager: CM, chain_source: Option<C>,
212-
chain_params: Option<ChainParameters>, service_config: Option<LiquidityServiceConfig>,
214+
chain_params: Option<ChainParameters>, kv_store: Arc<dyn KVStore + Send + Sync>,
215+
service_config: Option<LiquidityServiceConfig>,
213216
client_config: Option<LiquidityClientConfig>,
214217
) -> Self {
215218
let time_provider = Arc::new(DefaultTimeProvider);
@@ -219,6 +222,7 @@ where
219222
channel_manager,
220223
chain_source,
221224
chain_params,
225+
kv_store,
222226
service_config,
223227
client_config,
224228
time_provider,
@@ -248,7 +252,8 @@ where
248252
/// [`LiquidityClientConfig`] and [`LiquidityServiceConfig`].
249253
pub fn new_with_custom_time_provider(
250254
entropy_source: ES, node_signer: NS, channel_manager: CM, chain_source: Option<C>,
251-
chain_params: Option<ChainParameters>, service_config: Option<LiquidityServiceConfig>,
255+
chain_params: Option<ChainParameters>, kv_store: Arc<dyn KVStore + Send + Sync>,
256+
service_config: Option<LiquidityServiceConfig>,
252257
client_config: Option<LiquidityClientConfig>, time_provider: TP,
253258
) -> Self {
254259
let pending_messages = Arc::new(MessageQueue::new());
@@ -373,6 +378,7 @@ where
373378
_client_config: client_config,
374379
best_block: RwLock::new(chain_params.map(|chain_params| chain_params.best_block)),
375380
_chain_source: chain_source,
381+
kv_store,
376382
}
377383
}
378384

lightning-liquidity/tests/common/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ use lightning_liquidity::{LiquidityClientConfig, LiquidityManager, LiquidityServ
66
use lightning::chain::{BestBlock, Filter};
77
use lightning::ln::channelmanager::ChainParameters;
88
use lightning::ln::functional_test_utils::{Node, TestChannelManager};
9-
use lightning::util::test_utils::TestKeysInterface;
9+
use lightning::util::persist::KVStoreSyncWrapper;
10+
use lightning::util::test_utils::{TestKeysInterface, TestStore};
1011

1112
use bitcoin::Network;
1213

@@ -27,23 +28,27 @@ pub(crate) fn create_service_and_client_nodes<'a, 'b, 'c>(
2728
network: Network::Testnet,
2829
best_block: BestBlock::from_network(Network::Testnet),
2930
};
31+
let service_kv_store = Arc::new(KVStoreSyncWrapper(Arc::new(TestStore::new(false))));
3032
let service_lm = LiquidityManager::new_with_custom_time_provider(
3133
nodes[0].keys_manager,
3234
nodes[0].keys_manager,
3335
nodes[0].node,
3436
None::<Arc<dyn Filter + Send + Sync>>,
3537
Some(chain_params.clone()),
38+
service_kv_store,
3639
Some(service_config),
3740
None,
3841
Arc::clone(&time_provider),
3942
);
4043

44+
let client_kv_store = Arc::new(KVStoreSyncWrapper(Arc::new(TestStore::new(false))));
4145
let client_lm = LiquidityManager::new_with_custom_time_provider(
4246
nodes[1].keys_manager,
4347
nodes[1].keys_manager,
4448
nodes[1].node,
4549
None::<Arc<dyn Filter + Send + Sync>>,
4650
Some(chain_params),
51+
client_kv_store,
4752
None,
4853
Some(client_config),
4954
time_provider,

0 commit comments

Comments
 (0)