]> Untitled Git - bdk-cli/commitdiff
[repl] Add broadcast command
authorAlekos Filini <alekos.filini@gmail.com>
Tue, 21 Apr 2020 14:39:00 +0000 (16:39 +0200)
committerAlekos Filini <alekos.filini@gmail.com>
Tue, 21 Apr 2020 14:39:00 +0000 (16:39 +0200)
examples/repl.rs

index b67b6e385f7360afe6d75ea3a437595cd52ceab1..82c41f308703c566c9ac5448ac8d936f938d9129 100644 (file)
@@ -160,6 +160,18 @@ fn main() {
                         .takes_value(true)
                         .number_of_values(1)
                         .required(true),
+                ))
+        .subcommand(
+            SubCommand::with_name("broadcast")
+                .about("Extracts the finalized transaction from a PSBT and broadcasts it to the network")
+                .arg(
+                    Arg::with_name("psbt")
+                        .long("psbt")
+                        .value_name("BASE64_PSBT")
+                        .help("Sets the PSBT to broadcast")
+                        .takes_value(true)
+                        .number_of_values(1)
+                        .required(true),
                 ));
 
     let mut repl_app = app.clone().setting(AppSettings::NoBinaryName);
@@ -309,6 +321,12 @@ fn main() {
             if finalized {
                 println!("Extracted: {}", serialize_hex(&psbt.extract_tx()));
             }
+        } else if let Some(sub_matches) = matches.subcommand_matches("broadcast") {
+            let psbt = base64::decode(sub_matches.value_of("psbt").unwrap()).unwrap();
+            let psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap();
+            let (txid, _) = wallet.broadcast(psbt).unwrap();
+
+            println!("TXID: {}", txid);
         }
     };