From dd3cb8a83af7d3b129bcfd6ee2865c22418d5535 Mon Sep 17 00:00:00 2001 From: tsk Date: Fri, 31 Oct 2025 12:20:44 -0400 Subject: [PATCH] fix: lnbits fee calc (#1243) * fix: lnbits fee calc --- crates/cdk-lnbits/src/lib.rs | 7 ++++--- crates/cdk-mintd/example.config.toml | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/crates/cdk-lnbits/src/lib.rs b/crates/cdk-lnbits/src/lib.rs index 02324604..ec5a9c60 100644 --- a/crates/cdk-lnbits/src/lib.rs +++ b/crates/cdk-lnbits/src/lib.rs @@ -11,7 +11,7 @@ use std::sync::Arc; use anyhow::anyhow; use async_trait::async_trait; -use cdk_common::amount::{to_unit, Amount}; +use cdk_common::amount::{to_unit, Amount, MSAT_IN_SAT}; use cdk_common::common::FeeReserve; use cdk_common::nuts::{CurrencyUnit, MeltOptions, MeltQuoteState}; use cdk_common::payment::{ @@ -244,7 +244,8 @@ impl MintPayment for LNbits { let relative_fee_reserve = (self.fee_reserve.percent_fee_reserve * u64::from(amount_msat) as f32) as u64; - let absolute_fee_reserve: u64 = self.fee_reserve.min_fee_reserve.into(); + let absolute_fee_reserve: u64 = + u64::from(self.fee_reserve.min_fee_reserve) * MSAT_IN_SAT; let fee = max(relative_fee_reserve, absolute_fee_reserve); @@ -253,7 +254,7 @@ impl MintPayment for LNbits { *bolt11_options.bolt11.payment_hash().as_ref(), )), amount: to_unit(amount_msat, &CurrencyUnit::Msat, unit)?, - fee: fee.into(), + fee: to_unit(fee, &CurrencyUnit::Msat, unit)?, state: MeltQuoteState::Unpaid, unit: unit.clone(), }) diff --git a/crates/cdk-mintd/example.config.toml b/crates/cdk-mintd/example.config.toml index 1dd62760..a7110ffd 100644 --- a/crates/cdk-mintd/example.config.toml +++ b/crates/cdk-mintd/example.config.toml @@ -103,6 +103,9 @@ reserve_fee_min = 4 # admin_api_key = "" # invoice_api_key = "" # lnbits_api = "" +# fee_percent = 0.04 +# # Fee in sats +# reserve_fee_min = 4 # Note: Only LNBits v1 API is supported (websocket-based) # [lnd]