diff --git a/lib/core/src/sdk.rs b/lib/core/src/sdk.rs index 900c756..ef814ac 100644 --- a/lib/core/src/sdk.rs +++ b/lib/core/src/sdk.rs @@ -896,18 +896,12 @@ impl LiquidSdk { }); } - // Ensure we use the same fee-rate from the `PrepareSendResponse` - let fee_rate_msat_per_vb = utils::derive_fee_rate_msat_per_vb( - self.onchain_wallet.clone(), - receiver_amount_sat, - &address_data.address, - fees_sat, - ) - .await?; let tx = self .onchain_wallet .build_tx( - Some(fee_rate_msat_per_vb), + self.config + .lowball_fee_rate_msat_per_vbyte() + .map(|v| v as f32), &address_data.address, receiver_amount_sat, ) diff --git a/lib/core/src/utils.rs b/lib/core/src/utils.rs index 191e018..14e8e12 100644 --- a/lib/core/src/utils.rs +++ b/lib/core/src/utils.rs @@ -1,12 +1,8 @@ use std::str::FromStr; -use std::sync::Arc; use std::time::{SystemTime, UNIX_EPOCH}; use crate::error::{PaymentError, SdkResult}; -use crate::prelude::STANDARD_FEE_RATE_SAT_PER_VBYTE; -use crate::wallet::OnchainWallet; use anyhow::{anyhow, Result}; -use log::debug; use lwk_wollet::elements::encode::deserialize; use lwk_wollet::elements::hex::FromHex; use lwk_wollet::elements::{ @@ -53,27 +49,3 @@ pub(crate) fn deserialize_tx_hex(tx_hex: &str) -> Result { |err| anyhow!("Could not deserialize transaction: {err:?}"), )?)?) } - -pub(crate) async fn derive_fee_rate_msat_per_vb( - wallet: Arc, - amount_sat: u64, - recipient_address: &str, - absolute_fees_sat: u64, -) -> Result { - let standard_fees_sat = wallet - .build_tx(None, recipient_address, amount_sat) - .await? - .all_fees() - .values() - .sum::() as f64; - - // Multiply sats/vb value by 1000 i.e. 1.0 sat/byte = 1000.0 sat/kvb = 1000.0 millisat/vb - // We calculate using f64 and convert to f32 in the last step, so we keep the maximum precision possible - let result_sat_per_vb = - STANDARD_FEE_RATE_SAT_PER_VBYTE * absolute_fees_sat as f64 / standard_fees_sat; - let result_msat_per_vb = result_sat_per_vb * 1000.0; - let result_msat_per_vb_f32 = result_msat_per_vb as f32; - debug!("derive_fee_rate_msat_per_vb: result_msat_per_vb_f32 {} from inputs: absolute_fees_sat {}, result_msat_per_vb: {}", - result_msat_per_vb_f32, absolute_fees_sat, result_msat_per_vb); - Ok(result_msat_per_vb_f32) -}