use crate::{FeeRate, TxBuilder, Wallet};
fn parse_recipient(s: &str) -> Result<(Script, u64), String> {
- let parts: Vec<_> = s.split(":").collect();
+ let parts: Vec<_> = s.split(':').collect();
if parts.len() != 2 {
return Err("Invalid format".to_string());
}
.unwrap()
.map(|s| parse_recipient(s))
.collect::<Result<Vec<_>, _>>()
- .map_err(|s| Error::Generic(s))?;
+ .map_err(Error::Generic)?;
let mut tx_builder = TxBuilder::with_recipients(recipients);
if sub_matches.is_present("send_all") {
let utxos = utxos
.map(|i| parse_outpoint(i))
.collect::<Result<Vec<_>, _>>()
- .map_err(|s| Error::Generic(s.to_string()))?;
+ .map_err(Error::Generic)?;
tx_builder = tx_builder.utxos(utxos).manually_selected_only();
}
let unspendable = unspendable
.map(|i| parse_outpoint(i))
.collect::<Result<Vec<_>, _>>()
- .map_err(|s| Error::Generic(s.to_string()))?;
+ .map_err(Error::Generic)?;
tx_builder = tx_builder.unspendable(unspendable);
}
if let Some(policy) = sub_matches.value_of("policy") {
let utxos = utxos
.map(|i| parse_outpoint(i))
.collect::<Result<Vec<_>, _>>()
- .map_err(|s| Error::Generic(s.to_string()))?;
+ .map_err(Error::Generic)?;
tx_builder = tx_builder.utxos(utxos);
}
let unspendable = unspendable
.map(|i| parse_outpoint(i))
.collect::<Result<Vec<_>, _>>()
- .map_err(|s| Error::Generic(s.to_string()))?;
+ .map_err(Error::Generic)?;
tx_builder = tx_builder.unspendable(unspendable);
}
let psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap();
let assume_height = sub_matches
.value_of("assume_height")
- .and_then(|s| Some(s.parse().unwrap()));
+ .map(|s| s.parse().unwrap());
let (psbt, finalized) = wallet.sign(psbt, assume_height)?;
Ok(json!({
"psbt": base64::encode(&serialize(&psbt)),
let assume_height = sub_matches
.value_of("assume_height")
- .and_then(|s| Some(s.parse().unwrap()));
+ .map(|s| s.parse().unwrap());
let (psbt, finalized) = wallet.finalize_psbt(psbt, assume_height)?;
Ok(json!({