|
@@ -3,14 +3,18 @@ use std::env;
|
|
|
use anyhow::Result;
|
|
|
use cdk::cdk_database::mint_memory::MintMemoryDatabase;
|
|
|
use cdk_integration_tests::init_regtest::{
|
|
|
- fund_ln, get_temp_dir, init_bitcoin_client, init_bitcoind, init_cln, init_cln_client, init_lnd,
|
|
|
- init_lnd_client, open_channel, start_cln_mint,
|
|
|
+ fund_ln, get_bitcoin_dir, get_cln_dir, get_temp_dir, init_bitcoin_client, init_bitcoind,
|
|
|
+ init_lnd, init_lnd_client, open_channel, start_cln_mint, BITCOIN_RPC_PASS, BITCOIN_RPC_USER,
|
|
|
};
|
|
|
use cdk_redb::MintRedbDatabase;
|
|
|
use cdk_sqlite::MintSqliteDatabase;
|
|
|
-use ln_regtest_rs::ln_client::LightningClient;
|
|
|
+use ln_regtest_rs::cln::Clnd;
|
|
|
+use ln_regtest_rs::ln_client::{ClnClient, LightningClient};
|
|
|
use tracing_subscriber::EnvFilter;
|
|
|
|
|
|
+const CLN_ADDR: &str = "127.0.0.1:19846";
|
|
|
+const CLN_TWO_ADDR: &str = "127.0.0.1:19847";
|
|
|
+
|
|
|
#[tokio::main]
|
|
|
async fn main() -> Result<()> {
|
|
|
let default_filter = "debug";
|
|
@@ -24,7 +28,6 @@ async fn main() -> Result<()> {
|
|
|
default_filter, sqlx_filter, hyper_filter, h2_filter
|
|
|
));
|
|
|
|
|
|
- // Parse input
|
|
|
tracing_subscriber::fmt().with_env_filter(env_filter).init();
|
|
|
|
|
|
let mut bitcoind = init_bitcoind();
|
|
@@ -37,13 +40,39 @@ async fn main() -> Result<()> {
|
|
|
let new_add = bitcoin_client.get_new_address()?;
|
|
|
bitcoin_client.generate_blocks(&new_add, 200).unwrap();
|
|
|
|
|
|
- let mut clnd = init_cln();
|
|
|
+ let cln_one_dir = get_cln_dir("one");
|
|
|
+ let mut clnd = Clnd::new(
|
|
|
+ get_bitcoin_dir(),
|
|
|
+ cln_one_dir.clone(),
|
|
|
+ CLN_ADDR.into(),
|
|
|
+ BITCOIN_RPC_USER.to_string(),
|
|
|
+ BITCOIN_RPC_PASS.to_string(),
|
|
|
+ );
|
|
|
clnd.start_clnd()?;
|
|
|
|
|
|
- let cln_client = init_cln_client().await?;
|
|
|
+ let cln_client = ClnClient::new(cln_one_dir.clone(), None).await?;
|
|
|
+
|
|
|
+ cln_client.wait_chain_sync().await.unwrap();
|
|
|
+
|
|
|
+ fund_ln(&bitcoin_client, &cln_client).await.unwrap();
|
|
|
+
|
|
|
+ // Create second cln
|
|
|
+ let cln_two_dir = get_cln_dir("two");
|
|
|
+ let mut clnd_two = Clnd::new(
|
|
|
+ get_bitcoin_dir(),
|
|
|
+ cln_two_dir.clone(),
|
|
|
+ CLN_TWO_ADDR.into(),
|
|
|
+ BITCOIN_RPC_USER.to_string(),
|
|
|
+ BITCOIN_RPC_PASS.to_string(),
|
|
|
+ );
|
|
|
+ clnd_two.start_clnd()?;
|
|
|
+
|
|
|
+ let cln_two_client = ClnClient::new(cln_two_dir.clone(), None).await?;
|
|
|
|
|
|
cln_client.wait_chain_sync().await.unwrap();
|
|
|
|
|
|
+ fund_ln(&bitcoin_client, &cln_two_client).await.unwrap();
|
|
|
+
|
|
|
let mut lnd = init_lnd().await;
|
|
|
lnd.start_lnd().unwrap();
|
|
|
|
|
@@ -51,9 +80,7 @@ async fn main() -> Result<()> {
|
|
|
|
|
|
lnd_client.wait_chain_sync().await.unwrap();
|
|
|
|
|
|
- fund_ln(&bitcoin_client, &cln_client, &lnd_client)
|
|
|
- .await
|
|
|
- .unwrap();
|
|
|
+ fund_ln(&bitcoin_client, &lnd_client).await.unwrap();
|
|
|
|
|
|
open_channel(&bitcoin_client, &cln_client, &lnd_client)
|
|
|
.await
|
|
@@ -64,18 +91,22 @@ async fn main() -> Result<()> {
|
|
|
|
|
|
let mint_db_kind = env::var("MINT_DATABASE")?;
|
|
|
|
|
|
+ let temp_dir_path = get_temp_dir();
|
|
|
+ let db_path = get_temp_dir().join("mint");
|
|
|
+ let cln_path = temp_dir_path.join("one");
|
|
|
+
|
|
|
match mint_db_kind.as_str() {
|
|
|
"MEMORY" => {
|
|
|
- start_cln_mint(addr, port, MintMemoryDatabase::default()).await?;
|
|
|
+ start_cln_mint(addr, port, MintMemoryDatabase::default(), cln_path).await?;
|
|
|
}
|
|
|
"SQLITE" => {
|
|
|
- let sqlite_db = MintSqliteDatabase::new(&get_temp_dir().join("mint")).await?;
|
|
|
+ let sqlite_db = MintSqliteDatabase::new(&db_path).await?;
|
|
|
sqlite_db.migrate().await;
|
|
|
- start_cln_mint(addr, port, sqlite_db).await?;
|
|
|
+ start_cln_mint(addr, port, sqlite_db, cln_path).await?;
|
|
|
}
|
|
|
"REDB" => {
|
|
|
- let redb_db = MintRedbDatabase::new(&get_temp_dir().join("mint")).unwrap();
|
|
|
- start_cln_mint(addr, port, redb_db).await?;
|
|
|
+ let redb_db = MintRedbDatabase::new(&db_path).unwrap();
|
|
|
+ start_cln_mint(addr, port, redb_db, cln_path).await?;
|
|
|
}
|
|
|
_ => panic!("Unknown mint db type: {}", mint_db_kind),
|
|
|
};
|