From 0b8e43b7a822dec42c94cb9d8aeccadac6f4c731 Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Fri, 25 Apr 2025 17:54:44 -0400 Subject: [PATCH] preserve old behavior when nack does not include updated multisig --- .../core/trade/protocol/TradeProtocol.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/haveno/core/trade/protocol/TradeProtocol.java b/core/src/main/java/haveno/core/trade/protocol/TradeProtocol.java index 6272d407..844d13e8 100644 --- a/core/src/main/java/haveno/core/trade/protocol/TradeProtocol.java +++ b/core/src/main/java/haveno/core/trade/protocol/TradeProtocol.java @@ -804,15 +804,15 @@ public abstract class TradeProtocol implements DecryptedDirectMessageListener, D else { log.warn("We received a NACK for our PaymentReceivedMessage to the buyer for {} {}", trade.getClass().getSimpleName(), trade.getId()); - // update multisig hex + // nack includes updated multisig hex since v1.1.1 if (ackMessage.getUpdatedMultisigHex() != null) { trade.getBuyer().setUpdatedMultisigHex(ackMessage.getUpdatedMultisigHex()); - } - // reset state if not processed - if (trade.isPaymentReceived() && !trade.isPayoutPublished() && !isPaymentReceivedMessageAckedByEither()) { - log.warn("Resetting state to payment sent for {} {}", trade.getClass().getSimpleName(), trade.getId()); - trade.resetToPaymentSentState(); + // reset state if not processed + if (trade.isPaymentReceived() && !trade.isPayoutPublished() && !isPaymentReceivedMessageAckedByEither()) { + log.warn("Resetting state to payment sent for {} {}", trade.getClass().getSimpleName(), trade.getId()); + trade.resetToPaymentSentState(); + } } } processModel.getTradeManager().requestPersistence(); @@ -826,15 +826,15 @@ public abstract class TradeProtocol implements DecryptedDirectMessageListener, D if (!ackMessage.isSuccess()) { log.warn("We received a NACK for our PaymentReceivedMessage to the arbitrator for {} {}", trade.getClass().getSimpleName(), trade.getId()); - // update multisig hex + // nack includes updated multisig hex since v1.1.1 if (ackMessage.getUpdatedMultisigHex() != null) { trade.getArbitrator().setUpdatedMultisigHex(ackMessage.getUpdatedMultisigHex()); - } - // reset state if not processed - if (trade.isPaymentReceived() && !trade.isPayoutPublished() && !isPaymentReceivedMessageAckedByEither()) { - log.warn("Resetting state to payment sent for {} {}", trade.getClass().getSimpleName(), trade.getId()); - trade.resetToPaymentSentState(); + // reset state if not processed + if (trade.isPaymentReceived() && !trade.isPayoutPublished() && !isPaymentReceivedMessageAckedByEither()) { + log.warn("Resetting state to payment sent for {} {}", trade.getClass().getSimpleName(), trade.getId()); + trade.resetToPaymentSentState(); + } } } processModel.getTradeManager().requestPersistence();