From 3e640ff93d375a06678052befa45e6356949bff4 Mon Sep 17 00:00:00 2001 From: valued mammal Date: Sun, 16 Feb 2025 09:40:41 -0500 Subject: [PATCH] feat(example_cli): add feerate option to psbt new cmd --- example-crates/example_cli/src/lib.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/example-crates/example_cli/src/lib.rs b/example-crates/example_cli/src/lib.rs index 2e567090..03f9141d 100644 --- a/example-crates/example_cli/src/lib.rs +++ b/example-crates/example_cli/src/lib.rs @@ -150,6 +150,9 @@ pub enum PsbtCmd { value: u64, /// Recipient address address: Address, + /// Set the feerate of the tx (sat/vbyte) + #[clap(long, short, default_value = "1.0")] + feerate: Option, /// Set max absolute timelock (from consensus value) #[clap(long, short)] after: Option, @@ -260,6 +263,7 @@ pub fn create_tx( cs_algorithm: CoinSelectionAlgo, address: Address, value: u64, + feerate: f32, ) -> anyhow::Result<(Psbt, Option)> where O::Error: std::error::Error + Send + Sync + 'static, @@ -332,7 +336,10 @@ where .iter() .map(|output| (output.weight().to_wu() as u32, output.value.to_sat())), ), - fee: TargetFee::default(), + fee: TargetFee { + rate: FeeRate::from_sat_per_vb(feerate), + ..Default::default() + }, }; let change_policy = ChangePolicy { @@ -584,6 +591,7 @@ pub fn handle_commands( PsbtCmd::New { value, address, + feerate, after, older, coin_select, @@ -611,7 +619,15 @@ pub fn handle_commands( assets = assets.older(relative::LockTime::from_consensus(n)?); } - create_tx(&mut graph, &*chain, &assets, coin_select, address, value)? + create_tx( + &mut graph, + &*chain, + &assets, + coin_select, + address, + value, + feerate.expect("must have feerate"), + )? }; if let Some(ChangeInfo { -- 2.49.0