Files
cdk/crates/cdk-integration-tests/src/main.rs
2024-09-21 11:10:38 +02:00

65 lines
1.8 KiB
Rust

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,
};
use cdk_redb::MintRedbDatabase;
use cdk_sqlite::MintSqliteDatabase;
#[tokio::main]
async fn main() -> Result<()> {
let mut bitcoind = init_bitcoind();
bitcoind.start_bitcoind()?;
let bitcoin_client = init_bitcoin_client()?;
bitcoin_client.create_wallet().ok();
bitcoin_client.load_wallet()?;
let new_add = bitcoin_client.get_new_address()?;
bitcoin_client.generate_blocks(&new_add, 200).unwrap();
let mut clnd = init_cln();
clnd.start_clnd()?;
let cln_client = init_cln_client().await?;
let mut lnd = init_lnd().await;
lnd.start_lnd().unwrap();
let lnd_client = init_lnd_client().await.unwrap();
fund_ln(&bitcoin_client, &cln_client, &lnd_client)
.await
.unwrap();
open_channel(&bitcoin_client, &cln_client, &lnd_client)
.await
.unwrap();
let addr = "127.0.0.1";
let port = 8085;
let mint_db_kind = env::var("MINT_DATABASE")?;
match mint_db_kind.as_str() {
"MEMORY" => {
start_cln_mint(addr, port, MintMemoryDatabase::default()).await?;
}
"SQLITE" => {
let sqlite_db = MintSqliteDatabase::new(&get_temp_dir().join("mint")).await?;
sqlite_db.migrate().await;
start_cln_mint(addr, port, sqlite_db).await?;
}
"REDB" => {
let redb_db = MintRedbDatabase::new(&get_temp_dir().join("mint")).unwrap();
start_cln_mint(addr, port, redb_db).await?;
}
_ => panic!("Unknown mint db type: {}", mint_db_kind),
};
Ok(())
}