From f601e0f42fb76c5f17ffa45b85620af45f9da7f8 Mon Sep 17 00:00:00 2001 From: jmacxx <47253594+jmacxx@users.noreply.github.com> Date: Tue, 15 Feb 2022 13:23:33 -0600 Subject: [PATCH] Obtain trade fee settings from filter --- .../bisq/core/app/DomainInitialisation.java | 2 +- .../bisq/core/provider/fee/FeeService.java | 30 +++++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/bisq/core/app/DomainInitialisation.java b/core/src/main/java/bisq/core/app/DomainInitialisation.java index 32316b9fac3..f6d049383f9 100644 --- a/core/src/main/java/bisq/core/app/DomainInitialisation.java +++ b/core/src/main/java/bisq/core/app/DomainInitialisation.java @@ -240,7 +240,7 @@ public void initDomainServices(Consumer rejectedTxErrorMessageHandler, p2PService.onAllServicesInitialized(); - feeService.onAllServicesInitialized(); + feeService.onAllServicesInitialized(filterManager); if (DevEnv.isDaoActivated()) { daoSetup.onAllServicesInitialized(errorMessage -> { diff --git a/core/src/main/java/bisq/core/provider/fee/FeeService.java b/core/src/main/java/bisq/core/provider/fee/FeeService.java index c82cfab0160..e118d5f602f 100644 --- a/core/src/main/java/bisq/core/provider/fee/FeeService.java +++ b/core/src/main/java/bisq/core/provider/fee/FeeService.java @@ -20,6 +20,7 @@ import bisq.core.dao.governance.param.Param; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.state.DaoStateService; +import bisq.core.filter.FilterManager; import bisq.common.UserThread; import bisq.common.config.Config; @@ -68,9 +69,31 @@ public class FeeService { private static final long MIN_PAUSE_BETWEEN_REQUESTS_IN_MIN = 2; private static DaoStateService daoStateService; private static PeriodService periodService; + private static FilterManager filterManager = null; - private static Coin getFeeFromParamAsCoin(Param parm) { - return daoStateService != null && periodService != null ? daoStateService.getParamValueAsCoin(parm, periodService.getChainHeight()) : Coin.ZERO; + private static Coin getFeeFromParamAsCoin(Param param) { + // if specified, filter values take precedence + Coin fromFilter = getFilterFromParamAsCoin(param); + if (fromFilter.isGreaterThan(Coin.ZERO)) { + return fromFilter; + } + return daoStateService != null && periodService != null ? daoStateService.getParamValueAsCoin(param, periodService.getChainHeight()) : Coin.ZERO; + } + + private static Coin getFilterFromParamAsCoin(Param param) { + Coin filterVal = Coin.ZERO; + if (filterManager != null) { + if (param == Param.DEFAULT_MAKER_FEE_BTC) { + filterVal = Coin.valueOf(filterManager.getFilter().getMakerFeeBtc()); + } else if (param == Param.DEFAULT_TAKER_FEE_BTC) { + filterVal = Coin.valueOf(filterManager.getFilter().getTakerFeeBtc()); + } else if (param == Param.DEFAULT_MAKER_FEE_BSQ) { + filterVal = Coin.valueOf(filterManager.getFilter().getMakerFeeBsq()); + } else if (param == Param.DEFAULT_TAKER_FEE_BSQ) { + filterVal = Coin.valueOf(filterManager.getFilter().getTakerFeeBsq()); + } + } + return filterVal; } public static Coin getMakerFeePerBtc(boolean currencyForFeeIsBtc) { @@ -122,7 +145,8 @@ public FeeService(FeeProvider feeProvider, DaoStateService daoStateService, Peri // API /////////////////////////////////////////////////////////////////////////////////////////// - public void onAllServicesInitialized() { + public void onAllServicesInitialized(FilterManager providedFilterManager) { + filterManager = providedFilterManager; minFeePerVByte = Config.baseCurrencyNetwork().getDefaultMinFeePerVbyte(); requestFees();