From 64081b684c763e3b224dddeae0b83aa5de51c55f Mon Sep 17 00:00:00 2001 From: woodser Date: Thu, 23 May 2024 20:19:24 -0400 Subject: [PATCH] arbitrator nacks maker init trade request if trade exists --- core/src/main/java/haveno/core/trade/TradeManager.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/haveno/core/trade/TradeManager.java b/core/src/main/java/haveno/core/trade/TradeManager.java index 69f0e6e998..2dc15165f7 100644 --- a/core/src/main/java/haveno/core/trade/TradeManager.java +++ b/core/src/main/java/haveno/core/trade/TradeManager.java @@ -560,7 +560,7 @@ public class TradeManager implements PersistedDataHost, DecryptedDirectMessageLi // ensure trade does not already exist Optional tradeOptional = getOpenTrade(request.getOfferId()); if (tradeOptional.isPresent()) { - log.warn("Maker trade already exists with id " + request.getOfferId() + ". This should never happen."); + log.warn("Ignoring InitTradeRequest to maker because trade already exists with id " + request.getOfferId() + ". This should never happen."); return; } @@ -657,7 +657,12 @@ public class TradeManager implements PersistedDataHost, DecryptedDirectMessageLi // verify request is from taker if (!sender.equals(request.getTakerNodeAddress())) { - log.warn("Ignoring InitTradeRequest from non-taker, tradeId={}, sender={}", request.getOfferId(), sender); + if (sender.equals(request.getMakerNodeAddress())) { + log.warn("Received InitTradeRequest from maker to arbitrator for trade that is already initializing, tradeId={}, sender={}", request.getOfferId(), sender); + sendAckMessage(sender, trade.getMaker().getPubKeyRing(), request, false, "Trade is already initializing for " + getClass().getSimpleName() + " " + trade.getId()); + } else { + log.warn("Ignoring InitTradeRequest from non-taker, tradeId={}, sender={}", request.getOfferId(), sender); + } return; } } else {