refactor: tighten protocol amount helpers

This commit is contained in:
2026-08-22 16:54:29 +02:00
parent 8548afcd21
commit b6fff605a1
2 changed files with 6 additions and 7 deletions
+4 -3
View File
@@ -22,7 +22,7 @@ import {
grossUpForMintFee,
mintAddressUrl,
resolveMintInput,
serverOf
serverOf,
} from 'lnurlcash-kit'
import type {LnurlcashOptions, MintFee} from 'lnurlcash-kit'
import {ceilMsatToSat, floorMsatToSat} from './units'
@@ -55,7 +55,7 @@ export const clearMintFeeQuoteCache = (): void => quoteCache.clear()
// reached right now.
export const quoteMintFee = async (
mintInput: string,
options: LnurlcashOptions = {}
options: LnurlcashOptions = {},
): Promise<MintFee | null> => {
const url = resolveMintInput(mintInput)
if (!url) return null
@@ -69,8 +69,9 @@ export const quoteMintFee = async (
if (addressUrl) {
try {
payUrl = (await fetchMintAddress(addressUrl, opts)).payLink
} catch {
} catch (error) {
// no mint-address support - the plain payRequest guess still works
if (!(error instanceof Error)) throw error
}
}
let fee: MintFee | null
+2 -4
View File
@@ -5,14 +5,12 @@ export const MSAT_PER_SAT = 1000
export const msatToSats = (msat: number): number => msat / MSAT_PER_SAT
export const satsToMsat = (sats: number): number =>
Math.round(sats * MSAT_PER_SAT)
export const satsToMsat = (sats: number): number => Math.round(sats * MSAT_PER_SAT)
// rounds up to the next whole sat - for an msat amount about to be
// requested as an invoice, where sub-sat precision (e.g. from a mint fee's
// percentage cut, see grossUpForMintFee) isn't reliably payable
export const ceilMsatToSat = (msat: number): number =>
Math.ceil(msat / MSAT_PER_SAT) * MSAT_PER_SAT
export const ceilMsatToSat = (msat: number): number => Math.ceil(msat / MSAT_PER_SAT) * MSAT_PER_SAT
// rounds down to the nearest whole sat - for a fee-adjusted amount shown
// as an upper bound: rounding up there would advertise a note value that