diff --git a/core/src/main/java/bisq/core/trade/bisq_v1/TradeUtil.java b/core/src/main/java/bisq/core/trade/bisq_v1/TradeUtil.java index 492b36c909..aa5f489327 100644 --- a/core/src/main/java/bisq/core/trade/bisq_v1/TradeUtil.java +++ b/core/src/main/java/bisq/core/trade/bisq_v1/TradeUtil.java @@ -273,4 +273,15 @@ public class TradeUtil { complete.handleResult(); } } + + public static void enforceFilterVersion(FilterManager filterManager, + ResultHandler complete, + ErrorMessageHandler failed) { + if (filterManager.requireUpdateToNewVersionForTrading()) { + failed.handleErrorMessage("Your version of Bisq is not compatible for trading anymore. " + + "Please update to the latest Bisq version at https://bisq.network/downloads."); + } else { + complete.handleResult(); + } + } } diff --git a/core/src/main/java/bisq/core/trade/protocol/bisq_v1/tasks/EnforceFilterVersion.java b/core/src/main/java/bisq/core/trade/protocol/bisq_v1/tasks/EnforceFilterVersion.java new file mode 100644 index 0000000000..2f3e6638eb --- /dev/null +++ b/core/src/main/java/bisq/core/trade/protocol/bisq_v1/tasks/EnforceFilterVersion.java @@ -0,0 +1,24 @@ +package bisq.core.trade.protocol.bisq_v1.tasks; + +import bisq.core.filter.FilterManager; +import bisq.core.trade.bisq_v1.TradeUtil; +import bisq.core.trade.model.bisq_v1.Trade; + +import bisq.common.taskrunner.TaskRunner; + +public class EnforceFilterVersion extends TradeTask { + public EnforceFilterVersion(TaskRunner taskHandler, Trade trade) { + super(taskHandler, trade); + } + + @Override + protected void run() { + try { + runInterceptHook(); + FilterManager filterManager = processModel.getFilterManager(); + TradeUtil.enforceFilterVersion(filterManager, this::complete, this::failed); + } catch (Throwable t) { + failed(t); + } + } +}