mod bolt11;
mod bolt12;
mod onchain;
mod spontaneous;
pub(crate) mod store;
mod unified_qr;
pub use bolt11::Bolt11Payment;
pub use bolt12::Bolt12Payment;
pub use onchain::OnchainPayment;
pub use spontaneous::SpontaneousPayment;
pub use store::{
ConfirmationStatus, LSPFeeLimits, PaymentDetails, PaymentDirection, PaymentKind, PaymentStatus,
};
pub use unified_qr::{QrPaymentResult, UnifiedQrPayment};
#[derive(Clone, Debug, PartialEq)]
pub struct SendingParameters {
#[cfg(not(feature = "uniffi"))]
pub max_total_routing_fee_msat: Option<Option<u64>>,
#[cfg(feature = "uniffi")]
pub max_total_routing_fee_msat: Option<MaxTotalRoutingFeeLimit>,
pub max_total_cltv_expiry_delta: Option<u32>,
pub max_path_count: Option<u8>,
pub max_channel_saturation_power_of_half: Option<u8>,
}
#[cfg(feature = "uniffi")]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum MaxTotalRoutingFeeLimit {
None,
Some { amount_msat: u64 },
}
#[cfg(feature = "uniffi")]
impl From<MaxTotalRoutingFeeLimit> for Option<u64> {
fn from(value: MaxTotalRoutingFeeLimit) -> Self {
match value {
MaxTotalRoutingFeeLimit::Some { amount_msat } => Some(amount_msat),
MaxTotalRoutingFeeLimit::None => None,
}
}
}
#[cfg(feature = "uniffi")]
impl From<Option<u64>> for MaxTotalRoutingFeeLimit {
fn from(value: Option<u64>) -> Self {
value.map_or(MaxTotalRoutingFeeLimit::None, |amount_msat| MaxTotalRoutingFeeLimit::Some {
amount_msat,
})
}
}