Skip to content

Commit

Permalink
Support floating point minfeerate param
Browse files Browse the repository at this point in the history
  • Loading branch information
DanGould committed Aug 1, 2023
1 parent 8273d2b commit 51298c9
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion payjoin-cli/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ impl App {
let mut outputs = HashMap::with_capacity(1);
outputs.insert(link.address.to_string(), amount);

let fee_rate = bitcoin::FeeRate::from_sat_per_vb(2).ok_or(anyhow!("Invalid fee rate"))?;
let fee_rate = bitcoin::FeeRate::from_sat_per_kwu(525);
let fee_sat_per_kvb =
fee_rate.to_sat_per_kwu().checked_mul(4).ok_or(anyhow!("Invalid fee rate"))?;
let fee_per_kvb = Amount::from_sat(fee_sat_per_kvb);
Expand Down
9 changes: 6 additions & 3 deletions payjoin/src/receive/optional_parameters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,12 @@ impl Params {
}
},
("minfeerate", feerate) =>
params.min_feerate = match feerate.parse::<u64>() {
Ok(rate) => FeeRate::from_sat_per_vb(rate)
.ok_or_else(|| Error::FeeRate(rate.to_string()))?,
params.min_feerate = match feerate.parse::<f64>() {
Ok(fee_rate_sat_per_vb) => {
// TODO Parse with serde when rust-bitcoin supports it
let fee_rate_sat_per_kwu = fee_rate_sat_per_vb * (1000.0 / 4.0);
FeeRate::from_sat_per_kwu(fee_rate_sat_per_kwu as u64)
},
Err(e) => return Err(Error::FeeRate(e.to_string())),
},
("disableoutputsubstitution", v) =>
Expand Down
7 changes: 2 additions & 5 deletions payjoin/src/send/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -708,12 +708,9 @@ fn serialize_url(
}
if min_fee_rate > FeeRate::ZERO {
// TODO serialize in rust-bitcoin <https://github.com/rust-bitcoin/rust-bitcoin/pull/1787/files#diff-c2ea40075e93ccd068673873166cfa3312ec7439d6bc5a4cbc03e972c7e045c4>
log::debug!("min_fee_rate: {}", min_fee_rate);
log::debug!("min_fee_rate sat/kwu: {}", min_fee_rate.to_sat_per_kwu());
log::debug!("min_fee_rate sat/vb: {}", min_fee_rate.to_sat_per_vb_ceil());
// let min_fee_per_vb = bitcoin::Amount::from_sat((min_fee_rate.to_sat_per_kwu() + 1000 / 4 - 1) / 1000 / 4).to_float_in(bitcoin::Denomination::Satoshi);
let float_fee_rate = min_fee_rate.to_sat_per_kwu() as f64 / (1000.0 / 4.0);
url.query_pairs_mut()
.append_pair("minfeerate", &min_fee_rate.to_sat_per_vb_floor().to_string());
.append_pair("minfeerate", &float_fee_rate.to_string());
}
log::debug!("Serialized URL: {}", url);
Ok(url)
Expand Down

0 comments on commit 51298c9

Please sign in to comment.