Starting a refactor into more functional modules

This commit is contained in:
Dave Hrycyszyn
2024-06-25 13:31:02 +01:00
parent d4809a48e6
commit 037fc27b7b
14 changed files with 54 additions and 21 deletions

View File

@@ -1,4 +1,4 @@
use crate::{keys, utils};
use crate::{ utils, bitcoin};
use bdk::bitcoin::psbt::PartiallySignedTransaction;
use bdk::bitcoin::Network;
use bdk::database::MemoryDatabase;
@@ -21,8 +21,8 @@ use bdk::{FeeRate, KeychainKind, SignOptions, TransactionDetails, Wallet};
pub async fn run() -> Result<(), anyhow::Error> {
let dave = utils::home(&"dave".to_string());
let sammy = utils::home(&"sammy".to_string());
let dave_key = keys::bitcoin::load_from_file(&dave).unwrap();
let sammy_key = keys::bitcoin::load_from_file(&sammy).unwrap();
let dave_key = bitcoin::bitcoin_keys::load_from_file(&dave).unwrap();
let sammy_key = bitcoin::bitcoin_keys::load_from_file(&sammy).unwrap();
let dave_wallet = create_wallet(dave_key)?;
let sammy_wallet = create_wallet(sammy_key)?;

View File

@@ -0,0 +1,2 @@
pub mod btc_electrum_client;
pub mod btc_esplora_client;

View File

@@ -0,0 +1,3 @@
pub mod clients;
pub mod bitcoin_keys;

View File

@@ -1,3 +1 @@
pub mod btc_electrum_client;
pub mod btc_esplora_client;
pub mod websocket;

View File

@@ -2,7 +2,7 @@ use std::path::PathBuf;
use config::SideNodeConfig;
use crate::{keys, utils};
use crate::{keys, utils, bitcoin};
pub(crate) mod config;
@@ -14,7 +14,7 @@ pub(crate) fn init(home: PathBuf, config: SideNodeConfig) -> Result<(), std::io:
keys::bft_crdt::write(&bft_crdt_key_path)?;
println!("Writing bitcoin key to: {:?}", bitcoin_key_path);
keys::bitcoin::write(&bitcoin_key_path)?;
bitcoin::bitcoin_keys::write(&bitcoin_key_path)?;
println!("Writing config to: {:?}", config_path);
config::write_toml(&config, &config_path).expect("unable to write config file");

View File

@@ -1,2 +1 @@
pub mod bft_crdt;
pub mod bitcoin;

View File

@@ -5,6 +5,7 @@ use crdt::TransactionList;
use node::SideNode;
use tokio::{sync::mpsc, task};
pub(crate) mod bitcoin;
pub(crate) mod cli;
pub mod clients;
pub mod crdt;
@@ -31,19 +32,19 @@ pub async fn run() {
node.start().await;
}
Some(Commands::Btc {}) => {
let _ = clients::btc_esplora_client::run().await;
let _ = bitcoin::clients::btc_esplora_client::run().await;
}
None => println!("No command provided. Exiting. See --help for more information."),
}
}
/// Wire everything up outside the application so we can test more easily later
/// Wire everything up outside the application so that we can test more easily later
async fn setup(name: &String) -> SideNode {
// First, load up the keys and create a bft-crdt
let side_dir = utils::home(name);
let bft_crdt_keys = keys::bft_crdt::load_from_file(&side_dir);
let bitcoin_keys = keys::bitcoin::load_from_file(&side_dir).unwrap();
let bitcoin_wallet = clients::btc_electrum_client::create_wallet(bitcoin_keys).unwrap();
let bitcoin_keys = bitcoin::bitcoin_keys::load_from_file(&side_dir).unwrap();
let bitcoin_wallet = bitcoin::clients::btc_electrum_client::create_wallet(bitcoin_keys).unwrap();
let crdt = BaseCrdt::<TransactionList>::new(&bft_crdt_keys);
// Channels for internal communication, and a tokio task for stdin input