]> Untitled Git - bdk-cli/commitdiff
Write more docs, make `TxBuilder::with_recipients` take Scripts
authorAlekos Filini <alekos.filini@gmail.com>
Fri, 4 Sep 2020 13:45:11 +0000 (15:45 +0200)
committerAlekos Filini <alekos.filini@gmail.com>
Fri, 4 Sep 2020 14:07:41 +0000 (16:07 +0200)
examples/repl.rs
src/cli.rs

index 8e8b38e0e2783075eea20826614373f24b826484..2756d2d410a66731fb8e399b6795f7e0d0590b70 100644 (file)
@@ -37,10 +37,10 @@ use log::{debug, error, info, trace, LevelFilter};
 use bitcoin::Network;
 
 use magical_bitcoin_wallet::bitcoin;
-use magical_bitcoin_wallet::blockchain::ElectrumBlockchain;
+use magical_bitcoin_wallet::blockchain::compact_filters::*;
 use magical_bitcoin_wallet::cli;
 use magical_bitcoin_wallet::sled;
-use magical_bitcoin_wallet::{Client, Wallet};
+use magical_bitcoin_wallet::Wallet;
 
 fn prepare_home_dir() -> PathBuf {
     let mut dir = PathBuf::new();
@@ -88,19 +88,17 @@ fn main() {
         .unwrap();
     debug!("database opened successfully");
 
-    let client = Client::new(
-        matches.value_of("server").unwrap(),
-        matches.value_of("proxy"),
-    )
-    .unwrap();
-    let wallet = Wallet::new(
-        descriptor,
-        change_descriptor,
-        network,
-        tree,
-        ElectrumBlockchain::from(client),
-    )
-    .unwrap();
+    let num_threads = 1;
+
+    let mempool = Arc::new(Mempool::default());
+    let peers = (0..num_threads)
+        .map(|_| Peer::connect("192.168.1.136:8333", Arc::clone(&mempool), Network::Bitcoin))
+        .collect::<Result<_, _>>()
+        .unwrap();
+    let blockchain =
+        CompactFiltersBlockchain::new(peers, "./wallet-filters", Some(500_000)).unwrap();
+
+    let wallet = Wallet::new(descriptor, change_descriptor, network, tree, blockchain).unwrap();
     let wallet = Arc::new(wallet);
 
     if let Some(_sub_matches) = matches.subcommand_matches("repl") {
index 51c56ef910af59350d0e8ea3832efa76dec7721a..e09fedd4efb8d109f780093aeff5461863e3b106 100644 (file)
@@ -33,14 +33,14 @@ use log::{debug, error, info, trace, LevelFilter};
 use bitcoin::consensus::encode::{deserialize, serialize, serialize_hex};
 use bitcoin::hashes::hex::FromHex;
 use bitcoin::util::psbt::PartiallySignedTransaction;
-use bitcoin::{Address, OutPoint, Txid};
+use bitcoin::{Address, OutPoint, Script, Txid};
 
 use crate::blockchain::log_progress;
 use crate::error::Error;
 use crate::types::ScriptType;
 use crate::{FeeRate, TxBuilder, Wallet};
 
-fn parse_recipient(s: &str) -> Result<(Address, u64), String> {
+fn parse_recipient(s: &str) -> Result<(Script, u64), String> {
     let parts: Vec<_> = s.split(":").collect();
     if parts.len() != 2 {
         return Err("Invalid format".to_string());
@@ -55,7 +55,7 @@ fn parse_recipient(s: &str) -> Result<(Address, u64), String> {
         return Err(format!("{:?}", e));
     }
 
-    Ok((addr.unwrap(), val.unwrap()))
+    Ok((addr.unwrap().script_pubkey(), val.unwrap()))
 }
 
 fn parse_outpoint(s: &str) -> Result<OutPoint, String> {