From cd8e3e2604c4102e7c7f7c2265ce962cfdb008ad Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sat, 2 Dec 2023 03:08:42 +0000 Subject: [PATCH] Fix liquid fee rounding --- backend/src/api/fee-api.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/api/fee-api.ts b/backend/src/api/fee-api.ts index 97dfc29d2..5260e959a 100644 --- a/backend/src/api/fee-api.ts +++ b/backend/src/api/fee-api.ts @@ -15,11 +15,12 @@ class FeeApi { constructor() { } defaultFee = Common.isLiquid() ? 0.1 : 1; + minimumIncrement = Common.isLiquid() ? 0.1 : 1; public getRecommendedFee(): RecommendedFees { const pBlocks = projectedBlocks.getMempoolBlocks(); const mPool = mempool.getMempoolInfo(); - const minimumFee = Math.ceil(mPool.mempoolminfee * 100000); + const minimumFee = this.roundUpToNearest(mPool.mempoolminfee * 100000, this.minimumIncrement); const defaultMinFee = Math.max(minimumFee, this.defaultFee); if (!pBlocks.length) { @@ -58,7 +59,11 @@ class FeeApi { const multiplier = (pBlock.blockVSize - 500000) / 500000; return Math.max(Math.round(useFee * multiplier), this.defaultFee); } - return Math.ceil(useFee); + return this.roundUpToNearest(useFee, this.minimumIncrement); + } + + private roundUpToNearest(value: number, nearest: number): number { + return Math.ceil(value / nearest) * nearest; } }