diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..b58b603
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,5 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..72a7bff
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/side.iml b/.idea/side.iml
new file mode 100644
index 0000000..fdaf31c
--- /dev/null
+++ b/.idea/side.iml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/side-node/src/keys/bitcoin.rs b/side-node/src/bitcoin/bitcoin_keys.rs
similarity index 100%
rename from side-node/src/keys/bitcoin.rs
rename to side-node/src/bitcoin/bitcoin_keys.rs
diff --git a/side-node/src/clients/btc_electrum_client.rs b/side-node/src/bitcoin/clients/btc_electrum_client.rs
similarity index 95%
rename from side-node/src/clients/btc_electrum_client.rs
rename to side-node/src/bitcoin/clients/btc_electrum_client.rs
index 52167c2..15a2f9f 100644
--- a/side-node/src/clients/btc_electrum_client.rs
+++ b/side-node/src/bitcoin/clients/btc_electrum_client.rs
@@ -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)?;
diff --git a/side-node/src/clients/btc_esplora_client.rs b/side-node/src/bitcoin/clients/btc_esplora_client.rs
similarity index 100%
rename from side-node/src/clients/btc_esplora_client.rs
rename to side-node/src/bitcoin/clients/btc_esplora_client.rs
diff --git a/side-node/src/bitcoin/clients/mod.rs b/side-node/src/bitcoin/clients/mod.rs
new file mode 100644
index 0000000..e24c49e
--- /dev/null
+++ b/side-node/src/bitcoin/clients/mod.rs
@@ -0,0 +1,2 @@
+pub mod btc_electrum_client;
+pub mod btc_esplora_client;
diff --git a/side-node/src/bitcoin/mod.rs b/side-node/src/bitcoin/mod.rs
new file mode 100644
index 0000000..59bf335
--- /dev/null
+++ b/side-node/src/bitcoin/mod.rs
@@ -0,0 +1,3 @@
+pub mod clients;
+pub mod bitcoin_keys;
+
diff --git a/side-node/src/clients/mod.rs b/side-node/src/clients/mod.rs
index 2c213cd..6eba44d 100644
--- a/side-node/src/clients/mod.rs
+++ b/side-node/src/clients/mod.rs
@@ -1,3 +1 @@
-pub mod btc_electrum_client;
-pub mod btc_esplora_client;
pub mod websocket;
diff --git a/side-node/src/init/mod.rs b/side-node/src/init/mod.rs
index 2f07328..a0ee5f8 100644
--- a/side-node/src/init/mod.rs
+++ b/side-node/src/init/mod.rs
@@ -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");
diff --git a/side-node/src/keys/mod.rs b/side-node/src/keys/mod.rs
index c5a0529..98f8c7f 100644
--- a/side-node/src/keys/mod.rs
+++ b/side-node/src/keys/mod.rs
@@ -1,2 +1 @@
pub mod bft_crdt;
-pub mod bitcoin;
diff --git a/side-node/src/lib.rs b/side-node/src/lib.rs
index f8ac9f2..5de5fa2 100644
--- a/side-node/src/lib.rs
+++ b/side-node/src/lib.rs
@@ -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::::new(&bft_crdt_keys);
// Channels for internal communication, and a tokio task for stdin input
diff --git a/side-node/tests/side_node.rs b/side-node/tests/side_node.rs
index a4547da..ce14f0a 100644
--- a/side-node/tests/side_node.rs
+++ b/side-node/tests/side_node.rs
@@ -2,13 +2,7 @@ use bft_json_crdt::{
json_crdt::{BaseCrdt, SignedOp},
keypair::make_keypair,
};
-use side_node::{
- clients::{btc_electrum_client, websocket::Client},
- crdt::TransactionList,
- keys,
- node::SideNode,
- utils,
-};
+use side_node::{clients::websocket::Client, crdt::TransactionList, keys, node::SideNode, utils};
use tokio::sync::mpsc;
#[tokio::test]
@@ -41,8 +35,8 @@ async fn test_distribute_via_websockets() {
async fn setup(_: &str) -> SideNode {
// First, load up the keys and create a bft-crdt
let bft_crdt_keys = make_keypair();
- let mnemonic_words = keys::bitcoin::make_mnemonic();
- let bitcoin_keys = keys::bitcoin::get(mnemonic_words).unwrap();
+ let mnemonic_words = bitcoin::bitcoin_keys::make_mnemonic();
+ let bitcoin_keys = bitcoin::bitcoin_keys::get(mnemonic_words).unwrap();
let bitcoin_wallet = btc_electrum_client::create_wallet(bitcoin_keys).unwrap();
let crdt = BaseCrdt::::new(&bft_crdt_keys);