From: Alekos Filini Date: Thu, 6 Aug 2020 14:56:41 +0000 (+0200) Subject: [wallet] Abstract coin selection in a separate trait X-Git-Tag: 0.1.0-beta.1~18 X-Git-Url: http://internal-gitweb-vhost/?a=commitdiff_plain;h=56601a87c4f17b269fe028e05968c8a6da87ee11;p=bdk-cli [wallet] Abstract coin selection in a separate trait --- diff --git a/Cargo.toml b/Cargo.toml index 8f41704..8db2878 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,7 @@ bitcoin = { version = "0.23", features = ["use-serde"] } miniscript = { version = "1.0" } serde = { version = "^1.0", features = ["derive"] } serde_json = { version = "^1.0" } +rand = "^0.7" # Optional dependencies sled = { version = "0.31.0", optional = true } diff --git a/src/cli.rs b/src/cli.rs index c946f22..735c0af 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -326,21 +326,19 @@ where .map(|s| parse_addressee(s)) .collect::, _>>() .map_err(|s| Error::Generic(s))?; - let mut tx_builder = TxBuilder::from_addressees(addressees); + let mut tx_builder = + TxBuilder::from_addressees(addressees).send_all(sub_matches.is_present("send_all")); - if sub_matches.is_present("send_all") { - tx_builder.send_all(); - } if let Some(fee_rate) = sub_matches.value_of("fee_rate") { let fee_rate = f32::from_str(fee_rate).map_err(|s| Error::Generic(s.to_string()))?; - tx_builder.fee_rate(fee_rate); + tx_builder = tx_builder.fee_rate(fee_rate); } if let Some(utxos) = sub_matches.values_of("utxos") { let utxos = utxos .map(|i| parse_outpoint(i)) .collect::, _>>() .map_err(|s| Error::Generic(s.to_string()))?; - tx_builder.utxos(utxos); + tx_builder = tx_builder.utxos(utxos); } if let Some(unspendable) = sub_matches.values_of("unspendable") { @@ -348,15 +346,15 @@ where .map(|i| parse_outpoint(i)) .collect::, _>>() .map_err(|s| Error::Generic(s.to_string()))?; - tx_builder.unspendable(unspendable); + tx_builder = tx_builder.unspendable(unspendable); } if let Some(policy) = sub_matches.value_of("policy") { let policy = serde_json::from_str::>>(&policy) .map_err(|s| Error::Generic(s.to_string()))?; - tx_builder.policy_path(policy); + tx_builder = tx_builder.policy_path(policy); } - let result = wallet.create_tx(&tx_builder)?; + let result = wallet.create_tx(tx_builder)?; Ok(Some(format!( "{:#?}\nPSBT: {}", result.1,