diff --git a/core/src/main/java/haveno/core/trade/SellerTrade.java b/core/src/main/java/haveno/core/trade/SellerTrade.java index 84c47f93dc..703f020940 100644 --- a/core/src/main/java/haveno/core/trade/SellerTrade.java +++ b/core/src/main/java/haveno/core/trade/SellerTrade.java @@ -71,7 +71,7 @@ public abstract class SellerTrade extends Trade { public boolean needsToResendPaymentReceivedMessages() { boolean hasNoPaymentReceivedMessages = getBuyer().getPaymentReceivedMessage() == null && getArbitrator().getPaymentReceivedMessage() == null; if (!walletExistsNoSync() && !hasNoPaymentReceivedMessages) return false; // cannot provide any updated state - return !isShutDownStarted() && getState().ordinal() >= Trade.State.SELLER_SENT_PAYMENT_RECEIVED_MSG.ordinal() && !getProcessModel().isPaymentReceivedMessagesAckedOrNacked() && resendPaymentReceivedMessagesEnabled() && resendPaymentReceivedMessagesWithinDuration(); + return !isShutDownStarted() && getState().ordinal() >= Trade.State.SELLER_SENT_PAYMENT_RECEIVED_MSG.ordinal() && !getProcessModel().isPaymentReceivedMessagesAcked() && resendPaymentReceivedMessagesEnabled() && resendPaymentReceivedMessagesWithinDuration(); } private boolean resendPaymentReceivedMessagesEnabled() { diff --git a/core/src/main/java/haveno/core/trade/Trade.java b/core/src/main/java/haveno/core/trade/Trade.java index d251d27f01..1f485417d0 100644 --- a/core/src/main/java/haveno/core/trade/Trade.java +++ b/core/src/main/java/haveno/core/trade/Trade.java @@ -1999,17 +1999,15 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model { } // TODO: clear other process data - if (processModel.isPaymentReceivedMessagesAckedOrNacked()) setPayoutTxHex(null); + if (isPayoutFinalized() || processModel.isPaymentReceivedMessagesAcked()) setPayoutTxHex(null); for (TradePeer peer : getAllPeers()) { peer.setUpdatedMultisigHex(null); peer.setDisputeClosedMessage(null); peer.setPaymentSentMessage(null); peer.setDepositTxHex(null); peer.setDepositTxKey(null); - if (peer.isPaymentReceivedMessageAckedOrNacked()) { - peer.setUnsignedPayoutTxHex(null); - peer.setPaymentReceivedMessage(null); - } + if (peer.isPaymentReceivedMessageAckedOrNacked() || isPayoutFinalized()) peer.setUnsignedPayoutTxHex(null); + if (peer.isPaymentReceivedMessageAckedOrNacked()) peer.setPaymentReceivedMessage(null); } } diff --git a/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java b/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java index fee4e12a4d..f8987abee4 100644 --- a/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java +++ b/core/src/main/java/haveno/core/trade/protocol/ProcessModel.java @@ -309,8 +309,8 @@ public class ProcessModel implements Model, PersistablePayload { return getP2PService().getAddress(); } - public boolean isPaymentReceivedMessagesAckedOrNacked() { - return getArbitrator().isPaymentReceivedMessageAckedOrNacked() && getBuyer().isPaymentReceivedMessageAckedOrNacked(); + public boolean isPaymentReceivedMessagesAcked() { + return getArbitrator().isPaymentReceivedMessageAcked() && getBuyer().isPaymentReceivedMessageAcked(); } public boolean isDisputeOpenedMessageAckedOrNacked() {