Moved the Electrum client back down
This commit is contained in:
@@ -1,10 +1,13 @@
|
|||||||
use crate::{bitcoin, utils};
|
use crate::{bitcoin, utils};
|
||||||
use bdk::bitcoin::psbt::PartiallySignedTransaction;
|
use bdk::bitcoin::psbt::PartiallySignedTransaction;
|
||||||
use bdk::database::MemoryDatabase;
|
|
||||||
use bdk::wallet::AddressIndex::New;
|
use bdk::wallet::AddressIndex::New;
|
||||||
use bdk::wallet::{AddressIndex, AddressInfo};
|
use bdk::wallet::{AddressIndex, AddressInfo};
|
||||||
|
use bdk::{
|
||||||
|
bitcoin::Network, database::MemoryDatabase, keys::ExtendedKey, template::Bip84, KeychainKind,
|
||||||
|
Wallet,
|
||||||
|
};
|
||||||
use bdk::{blockchain::ElectrumBlockchain, electrum_client, SyncOptions};
|
use bdk::{blockchain::ElectrumBlockchain, electrum_client, SyncOptions};
|
||||||
use bdk::{FeeRate, SignOptions, TransactionDetails, Wallet};
|
use bdk::{FeeRate, SignOptions, TransactionDetails};
|
||||||
|
|
||||||
/// DEPRECATED
|
/// DEPRECATED
|
||||||
///
|
///
|
||||||
@@ -21,8 +24,8 @@ pub async fn run() -> Result<(), anyhow::Error> {
|
|||||||
let dave_key = bitcoin::keys::load_from_file(&dave).unwrap();
|
let dave_key = bitcoin::keys::load_from_file(&dave).unwrap();
|
||||||
let sammy_key = bitcoin::keys::load_from_file(&sammy).unwrap();
|
let sammy_key = bitcoin::keys::load_from_file(&sammy).unwrap();
|
||||||
|
|
||||||
let dave_wallet = bitcoin::clients::create_wallet(dave_key)?;
|
let dave_wallet = bitcoin::clients::electrum::create_wallet(dave_key)?;
|
||||||
let sammy_wallet = bitcoin::clients::create_wallet(sammy_key)?;
|
let sammy_wallet = bitcoin::clients::electrum::create_wallet(sammy_key)?;
|
||||||
|
|
||||||
let dave_address = dave_wallet.get_address(AddressIndex::Peek(0))?.to_string();
|
let dave_address = dave_wallet.get_address(AddressIndex::Peek(0))?.to_string();
|
||||||
let sammy_address = sammy_wallet.get_address(AddressIndex::Peek(0))?.to_string();
|
let sammy_address = sammy_wallet.get_address(AddressIndex::Peek(0))?.to_string();
|
||||||
@@ -54,6 +57,25 @@ pub async fn run() -> Result<(), anyhow::Error> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Create a BDK wallet using BIP 84 descriptor ("m/84h/1h/0h/0" and "m/84h/1h/0h/1")
|
||||||
|
pub fn create_wallet(xkey: ExtendedKey) -> anyhow::Result<Wallet<MemoryDatabase>> {
|
||||||
|
let xprv = xkey
|
||||||
|
.into_xprv(Network::Testnet)
|
||||||
|
.expect("couldn't turn xkey into xprv");
|
||||||
|
|
||||||
|
let external_descriptor = Bip84(xprv, KeychainKind::External);
|
||||||
|
let internal_descriptor = Some(Bip84(xprv, KeychainKind::Internal));
|
||||||
|
|
||||||
|
let wallet = Wallet::new(
|
||||||
|
external_descriptor,
|
||||||
|
internal_descriptor,
|
||||||
|
Network::Testnet,
|
||||||
|
MemoryDatabase::default(),
|
||||||
|
)?;
|
||||||
|
|
||||||
|
Ok(wallet)
|
||||||
|
}
|
||||||
|
|
||||||
fn display_balance(wallet: &Wallet<MemoryDatabase>) {
|
fn display_balance(wallet: &Wallet<MemoryDatabase>) {
|
||||||
println!(
|
println!(
|
||||||
"Wallet balance for {} after syncing: {:?} sats on network {}",
|
"Wallet balance for {} after syncing: {:?} sats on network {}",
|
||||||
|
|||||||
@@ -1,27 +1,3 @@
|
|||||||
use bdk::{
|
|
||||||
bitcoin::Network, database::MemoryDatabase, keys::ExtendedKey, template::Bip84, KeychainKind,
|
|
||||||
Wallet,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Re-enable this if we want to use alongside a fullnode.
|
// Re-enable this if we want to use alongside a fullnode.
|
||||||
// pub mod electrum;
|
pub mod electrum;
|
||||||
pub mod esplora;
|
pub mod esplora;
|
||||||
|
|
||||||
/// Create a BDK wallet using BIP 84 descriptor ("m/84h/1h/0h/0" and "m/84h/1h/0h/1")
|
|
||||||
pub fn create_wallet(xkey: ExtendedKey) -> anyhow::Result<Wallet<MemoryDatabase>> {
|
|
||||||
let xprv = xkey
|
|
||||||
.into_xprv(Network::Testnet)
|
|
||||||
.expect("couldn't turn xkey into xprv");
|
|
||||||
|
|
||||||
let external_descriptor = Bip84(xprv, KeychainKind::External);
|
|
||||||
let internal_descriptor = Some(Bip84(xprv, KeychainKind::Internal));
|
|
||||||
|
|
||||||
let wallet = Wallet::new(
|
|
||||||
external_descriptor,
|
|
||||||
internal_descriptor,
|
|
||||||
Network::Testnet,
|
|
||||||
MemoryDatabase::default(),
|
|
||||||
)?;
|
|
||||||
|
|
||||||
Ok(wallet)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -50,6 +50,11 @@ pub(crate) async fn simple_transfer() -> Result<(), anyhow::Error> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) async fn htlc() -> anyhow::Result<()> {
|
pub(crate) async fn htlc() -> anyhow::Result<()> {
|
||||||
println!("Not implemented yet.");
|
// dave will be our sender
|
||||||
|
let mut dave = clients::esplora::create_wallet("dave", Network::Signet)?;
|
||||||
|
|
||||||
|
// sammy will be our liquidity router
|
||||||
|
let mut sammy = clients::esplora::create_wallet("sammy", Network::Signet)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ async fn setup(name: &String) -> SideNode {
|
|||||||
let side_dir = utils::home(name);
|
let side_dir = utils::home(name);
|
||||||
let bft_crdt_keys = bft_crdt::keys::load_from_file(&side_dir);
|
let bft_crdt_keys = bft_crdt::keys::load_from_file(&side_dir);
|
||||||
let keys = bitcoin::keys::load_from_file(&side_dir).unwrap();
|
let keys = bitcoin::keys::load_from_file(&side_dir).unwrap();
|
||||||
let bitcoin_wallet = bitcoin::clients::create_wallet(keys).unwrap();
|
let bitcoin_wallet = bitcoin::clients::electrum::create_wallet(keys).unwrap();
|
||||||
let crdt = BaseCrdt::<TransactionList>::new(&bft_crdt_keys);
|
let crdt = BaseCrdt::<TransactionList>::new(&bft_crdt_keys);
|
||||||
|
|
||||||
// Channels for internal communication, and a tokio task for stdin input
|
// Channels for internal communication, and a tokio task for stdin input
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ async fn setup(_: &str) -> SideNode {
|
|||||||
let bft_crdt_keys = make_keypair();
|
let bft_crdt_keys = make_keypair();
|
||||||
let mnemonic_words = bitcoin::keys::make_mnemonic();
|
let mnemonic_words = bitcoin::keys::make_mnemonic();
|
||||||
let keys = bitcoin::keys::get(mnemonic_words).unwrap();
|
let keys = bitcoin::keys::get(mnemonic_words).unwrap();
|
||||||
let bitcoin_wallet = bitcoin::clients::create_wallet(keys).unwrap();
|
let bitcoin_wallet = bitcoin::clients::electrum::create_wallet(keys).unwrap();
|
||||||
let crdt = BaseCrdt::<TransactionList>::new(&bft_crdt_keys);
|
let crdt = BaseCrdt::<TransactionList>::new(&bft_crdt_keys);
|
||||||
|
|
||||||
// Channels for internal communication, and a tokio task for stdin input
|
// Channels for internal communication, and a tokio task for stdin input
|
||||||
|
|||||||
Reference in New Issue
Block a user