Simplified bdk client
This commit is contained in:
@@ -1,9 +1,5 @@
|
|||||||
use std::io::Write;
|
|
||||||
|
|
||||||
use bdk::{bitcoin::Script, KeychainKind};
|
|
||||||
use bdk_esplora::esplora_client;
|
|
||||||
|
|
||||||
use crate::{keys, utils};
|
use crate::{keys, utils};
|
||||||
|
use bdk::{blockchain::ElectrumBlockchain, electrum_client, SyncOptions};
|
||||||
|
|
||||||
pub async fn run() -> Result<(), anyhow::Error> {
|
pub async fn run() -> Result<(), anyhow::Error> {
|
||||||
let dave = utils::home(&"dave".to_string());
|
let dave = utils::home(&"dave".to_string());
|
||||||
@@ -13,64 +9,29 @@ pub async fn run() -> Result<(), anyhow::Error> {
|
|||||||
let dave_wallet = keys::bitcoin::load_from_file(&dave).unwrap();
|
let dave_wallet = keys::bitcoin::load_from_file(&dave).unwrap();
|
||||||
let sammy_wallet = keys::bitcoin::load_from_file(&sammy).unwrap();
|
let sammy_wallet = keys::bitcoin::load_from_file(&sammy).unwrap();
|
||||||
|
|
||||||
let dave_address = dave_wallet.get_address(bdk::wallet::AddressIndex::New)?;
|
// let dave_address = dave_wallet.get_address(bdk::wallet::AddressIndex::New)?;
|
||||||
println!("Dave address: {:?}", dave_address);
|
// println!("Dave address: {:?}", dave_address);
|
||||||
|
|
||||||
let sammy_address = sammy_wallet.get_address(bdk::wallet::AddressIndex::New)?;
|
// let sammy_address = sammy_wallet.get_address(bdk::wallet::AddressIndex::New)?;
|
||||||
println!("Sammy address: {:?}", sammy_address);
|
// println!("Sammy address: {:?}", sammy_address);
|
||||||
|
|
||||||
print!("Syncing...");
|
let blockchain = ElectrumBlockchain::from(electrum_client::Client::new(
|
||||||
let client = esplora_client::Builder::new("http://signet.bitcoindevkit.net").build_async()?;
|
"ssl://electrum.blockstream.info:60002",
|
||||||
|
)?);
|
||||||
|
|
||||||
fn generate_inspect(kind: KeychainKind) -> impl FnMut(u32, &Script) + Send + Sync + 'static {
|
// let dave_balance = dave_wallet.get_balance()?;
|
||||||
let mut once = Some(());
|
// println!("Wallet balance before syncing: {} sats", dave_balance);
|
||||||
let mut stdout = std::io::stdout();
|
|
||||||
move |spk_i, _| {
|
|
||||||
match once.take() {
|
|
||||||
Some(_) => print!("\nScanning keychain [{:?}]", kind),
|
|
||||||
None => print!(" {:<3}", spk_i),
|
|
||||||
};
|
|
||||||
stdout.flush().expect("must flush");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// let request = dave_wallet
|
// let sammy_balance = sammy_wallet.get_balance()?;
|
||||||
// .start_full_scan()
|
// println!("Wallet balance before syncing: {} sats", sammy_balance);
|
||||||
// .inspect_spks_for_all_keychains({
|
|
||||||
// let mut once = BTreeSet::<KeychainKind>::new();
|
|
||||||
// move |keychain, spk_i, _| {
|
|
||||||
// match once.insert(keychain) {
|
|
||||||
// true => print!("\nScanning keychain [{:?}]", keychain),
|
|
||||||
// false => print!(" {:<3}", spk_i),
|
|
||||||
// }
|
|
||||||
// std::io::stdout().flush().expect("must flush")
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
// .inspect_spks_for_keychain(
|
|
||||||
// KeychainKind::External,
|
|
||||||
// generate_inspect(KeychainKind::External),
|
|
||||||
// )
|
|
||||||
// .inspect_spks_for_keychain(
|
|
||||||
// KeychainKind::Internal,
|
|
||||||
// generate_inspect(KeychainKind::Internal),
|
|
||||||
// );
|
|
||||||
|
|
||||||
// let mut update = client
|
println!("Syncing...");
|
||||||
// .full_scan(request, STOP_GAP, PARALLEL_REQUESTS)
|
dave_wallet.sync(&blockchain, SyncOptions::default())?;
|
||||||
// .await?;
|
println!(
|
||||||
// let now = std::time::UNIX_EPOCH.elapsed().unwrap().as_secs();
|
"Wallet balance for {} after syncing: {:?} sats",
|
||||||
// let _ = update.graph_update.update_last_seen_unconfirmed(now);
|
dave_wallet.get_address(bdk::wallet::AddressIndex::LastUnused)?,
|
||||||
|
dave_wallet.get_balance()?
|
||||||
// wallet.apply_update(update)?;
|
);
|
||||||
// if let Some(changeset) = wallet.take_staged() {
|
|
||||||
// db.write(&changeset)?;
|
|
||||||
// }
|
|
||||||
|
|
||||||
let dave_balance = dave_wallet.get_balance()?;
|
|
||||||
println!("Wallet balance before syncing: {} sats", dave_balance);
|
|
||||||
|
|
||||||
let sammy_balance = sammy_wallet.get_balance()?;
|
|
||||||
println!("Wallet balance before syncing: {} sats", sammy_balance);
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user