[repl] Add broadcast command
This commit is contained in:
parent
f605f4b34d
commit
3895b30083
@ -160,6 +160,18 @@ fn main() {
|
|||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.number_of_values(1)
|
.number_of_values(1)
|
||||||
.required(true),
|
.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);
|
let mut repl_app = app.clone().setting(AppSettings::NoBinaryName);
|
||||||
@ -309,6 +321,12 @@ fn main() {
|
|||||||
if finalized {
|
if finalized {
|
||||||
println!("Extracted: {}", serialize_hex(&psbt.extract_tx()));
|
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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1062,7 +1062,7 @@ where
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn broadcast(&mut self, psbt: PSBT) -> Result<Transaction, Error> {
|
pub fn broadcast(&self, psbt: PSBT) -> Result<(Txid, Transaction), Error> {
|
||||||
let extracted = psbt.extract_tx();
|
let extracted = psbt.extract_tx();
|
||||||
self.client
|
self.client
|
||||||
.as_ref()
|
.as_ref()
|
||||||
@ -1070,6 +1070,6 @@ where
|
|||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.transaction_broadcast(&extracted)?;
|
.transaction_broadcast(&extracted)?;
|
||||||
|
|
||||||
Ok(extracted)
|
Ok((extracted.txid(), extracted))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user